当前位置:   article > 正文

LeetCode101题:判断一棵二叉树是否为对称二叉树_判断一棵带点权的二叉树是否为对称二叉树。 一棵二叉树是对称的当且仅当:将这棵树

判断一棵带点权的二叉树是否为对称二叉树。 一棵二叉树是对称的当且仅当:将这棵树

题目描述:

 

思路:首先考虑这题应该用递归的方法,拿到这题的时候无从下手,我们想要如何判断一颗二叉树是否左右对称,我们想到的是这个树根节点的左子树要对称于根节点的右子树,怎么样才能保证左右子树对称呢,也就是说如果整棵树只有左子树没有右子树那么这棵树肯定不对称,空树也是对称的,如果左右子树都存在的时候我们还要考虑的就是结点的对称位置的值是否相等即任意两个对称位置的根节点值要相等且左树的左子结点等于右树的右子节点。这句话大家可能看不明白但是大家看一下图就能理解啥意思了。

  1. /**
  2. * Definition for a binary tree node.
  3. * struct TreeNode {
  4. * int val;
  5. * struct TreeNode *left;
  6. * struct TreeNode *right;
  7. * };
  8. */
  9. bool help(struct TreeNode* root1,struct TreeNode* root2)
  10. {
  11. if(root1==NULL&&root2==NULL)
  12. return true;
  13. if(root1==NULL||root2==NULL)
  14. return false;
  15. return (root1->val==root2->val)&&help(root1->left,root2->right)&&help(root1->right,root2->left);
  16. }
  17. bool isSymmetric(struct TreeNode* root){
  18. return help(root,root);
  19. }

 结果:

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/731934
推荐阅读
相关标签
  

闽ICP备14008679号