首页 > 其他分享 >day11打卡

day11打卡

时间:2024-08-30 20:52:38浏览次数:11  
标签:right return nullptr day11 TreeNode 打卡 root left

翻转二叉树

class Solution
{
public:
void traversal(TreeNode root)
{
if(root == nullptr)
{
return;
}
traversal(root->left);
traversal(root->right);
TreeNode tmp = root->left;
root->left = root->right;
root->right = tmp;
}
TreeNode
invertTree(TreeNode
root)
{
traversal(root);
return root;
}
};

对称二叉树

class Solution
{
public:
bool compare(TreeNode *left, TreeNode right)
{
if(left == nullptr && right != nullptr)
{
return false;
}
else if(left != nullptr && right == nullptr)
{
return false;
}
else if(left == nullptr && right == nullptr)
{
return true;
}
else if(left->val != right->val)
{
return false;
}
bool outside = compare(left->left, right->right);
bool inside = compare(left->right, right->left);
return outside && inside;
}
bool isSymmetric(TreeNode
root)
{
return compare(root->left, root->right);
}
};

最大深度

class Solution
{
public:
int maxDepth(TreeNode* root)
{
if(root == nullptr)
{
return 0;
}
int left = maxDepth(root->left);
int right = maxDepth(root->right);
if(left > right)
{
return 1 + left;
}
else
{
return 1 + right;
}
}
};

最小深度

class Solution
{
public:
int minDepth(TreeNode* root)
{
if(root == nullptr)
{
return 0;
}
int left = minDepth(root->left);
int right = minDepth(root->right);
if(root->left == nullptr && root->right !=nullptr)
{
return 1 + right;
}
else if(root->right == nullptr && root->left != nullptr)
{
return 1 + left;
}
if(left > right)
{
return 1 + right;
}
else
{
return 1 + left;
}
}
};

标签:right,return,nullptr,day11,TreeNode,打卡,root,left
From: https://www.cnblogs.com/pwangikun/p/18389487

相关文章

  • day9打卡
    用栈实现队列classMyQueue{public:MyQueue(){}voidpush(intx){stIn.push(x);}intpop(){inta;while(!stIn.empty()){a=stIn.top();stIn.pop();stOut.push(a);}a=stOut.top();stOut.pop();while(!stOut.empty()){intb=stOut.top();stOut.pop();......
  • day8打卡
    反转字符串中的单词classSolution{public:stringreverseWords(strings){intslow=0;inti=0;while(i<s.size()){if(s[i]!=''){if(slow!=0){s[slow++]='';}while(i<s.size()&&s[i]!=''){s[slow+......
  • day7打卡
    反转字符串利用双指针不断向中间靠拢,交换数据classSolution{public:voidreverseString(vector&s){intleft=0;intright=s.size()-1;while(left<right){chartmp='\0';tmp=s[left];s[left++]=s[right];s[right--]=tmp;}}};反转字符串II......
  • 代码随想录训练营 Day42打卡 动态规划 part09 188.买卖股票的最佳时机IV 309. 最佳买
    代码随想录训练营Day42打卡动态规划part09一、力扣188.买卖股票的最佳时机IV给你一个整数数组prices和一个整数k,其中prices[i]是某支给定的股票在第i天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成k笔交易。也就是说,你最多可以买k次......
  • Datawhale X 李宏毅苹果书AI夏令营 Task1打卡
    3.1局部极小值与鞍点3.1.1临界点及其分类参数对于损失函数的微分为零时,就无法进一步优化了,训练即停止了。所以我们把这些梯度为零的点统称为临界点。临界点可以分为两类:极值点(局部极小值)和鞍点。鞍点就是指那些梯度为零但不是局部极小值或者局部极大值的点,因为其在损失......
  • 代码训练营 Day11 | 150. 逆波兰表达式求值 | 239. 滑动窗口最大值 | 347.前 K 个高频
    150.逆波兰表达式求值逆波兰表达式(后缀表达式)(1+2)x(3+4)的后续表达顺序是:左右中 后缀表达式:12+34+x使用栈思路1.遇见数字就放入栈,遇见操作运算符,取出栈里的数字进行运算2.每次取元素的时候只取两个元素3.结果就是栈最后的元素classSolution(object):d......
  • 企业微信如何远程打卡,免费
    现在一些定位软件不好用或者要收费,那么如何能够很好的免费实现远程打开呢?首先需要一个不用的旧手机,一直放在公司里,然后拿自己常用手机远程操作来实现,具体步骤如下:旧手机需要打开开发者模式,然后打开屏幕常亮保证不会锁屏;公司电脑下载scrcpy用来操作连接的旧手机;下载地址......
  • apk机器(手机,打卡机,录像机)连接电脑 常用adb操作命令
    adb简介adb的全称为AndroidDebugBridge,就是起到调试桥的作用。它就是一个命令行窗口,用于通过电脑端与模拟器或者是设备之间的交互。借助adb工具,我们可以管理设备的状态。还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。其实简而言说,adb就是连接Android与PC......
  • day6打卡
    四数相加classSolution{public:intfourSumCount(vector&nums1,vector&nums2,vector&nums3,vector&nums4){unordered_map<int,int>umap;for(intnum1:nums1){for(intnum2:nums2){umap[num1+num2]++;}}intcount=0;for(int......
  • day4打卡
    两两交换链表中的节点一开始有错误,找不出来,但是gdb真好用Definitionforsingly-linkedlist.structListNode{intval;ListNode*next;ListNode():val(0),next(nullptr){}ListNode(intx):val(x),next(nullptr){}ListNode(intx,ListNode*n......