【Leetcode】101. 对称二叉树、104. 二叉树的最大深度、226. 翻转二叉树

布满荆棘的人生 2024-03-30 12:18 146阅读 0赞

作者:一个喜欢猫咪的的程序员

专栏:《Leetcode》

喜欢的话:世间因为少年的挺身而出,而更加瑰丽。 ——《人民日报》

7d63d497b5114103b3dd7633a1ba4731.jpeg

目录

  1. 对称二叉树

    1. 二叉树的最大深度

    2. 翻转二叉树


101. 对称二叉树

101. 对称二叉树icon-default.png?t=M85Bhttps://leetcode.cn/problems/symmetric-tree/

题目描述:

给你一个二叉树的根节点 root , 检查它是否轴对称。


示例:

77fa2347e9cd4cbd8d9e9da82d071be2.png


思路:

可以让左子树跟右子树比较,让左子树的左节点和右子树的右节点作比较。让左子树的右节点和右子树的左节点作比较。 递归循环就可以完成。


代码实现:

  1. bool _isSymmetric(struct TreeNode* root1,struct TreeNode* root2)
  2. {
  3. if(root1==NULL&&root2==NULL)
  4. return true;
  5. if(root1==NULL||root2==NULL)
  6. return false;
  7. if(root1->val!=root2->val)
  8. return false;
  9. return _isSymmetric(root1->left,root2->right)&&_isSymmetric(root1->right,root2->left);
  10. }
  11. bool isSymmetric(struct TreeNode* root){
  12. return _isSymmetric(root->left,root->right);
  13. }

104. 二叉树的最大深度

104. 二叉树的最大深度icon-default.png?t=M85Bhttps://leetcode.cn/problems/maximum-depth-of-binary-tree/

题目描述:

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。


示例:

98c5298442f34796a82a2b6f70428612.png


思路:

可参考我的另外一篇博客(数的高度部分): http://t.csdn.cn/MQd0j


代码实现:

  1. int TreeHeight(struct TreeNode* root)
  2. {
  3. if (root == NULL)
  4. return 0;
  5. int left = TreeHeight(root->left);
  6. int right = TreeHeight(root->right);
  7. return left > right ? left+1 : right+1;
  8. }
  9. int maxDepth(struct TreeNode* root){
  10. return TreeHeight(root);
  11. }

226. 翻转二叉树

226. 翻转二叉树icon-default.png?t=M85Bhttps://leetcode.cn/problems/invert-binary-tree/

题目描述:

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。


示例:

edb238aa69cc4f99bb62a6f62c905d65.png


思路:

让左右节点交换地址,递归下去。


代码实现:

  1. struct TreeNode* invertTree(struct TreeNode* root){
  2. if(root)
  3. {
  4. if(root->left||root->right)
  5. {
  6. struct TreeNode*tmp=root->left;
  7. root->left=root->right;
  8. root->right=tmp;
  9. invertTree(root->left);
  10. invertTree(root->right);
  11. }
  12. }
  13. return root;
  14. }

发表评论

表情:
评论列表 (有 0 条评论,146人围观)

还没有评论,来说两句吧...

相关阅读