当前位置:   article > 正文

LeetCode--对称二叉树 ( Symmetric Tree ) ( C语言版 )_对称二叉树 c语言

对称二叉树 c语言

对称二叉树 : 给定一个二叉树,检查它是否是镜像对称的。

思路 : 根据对称二叉树的特性, 可以使用递归去求解, 这里只需要判断左孩子的左边和右孩子的右边 或者 左孩子的右边和右孩子的左边是否相等或为空即可;

代码如下 : 

  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 MyisSymmetric(struct TreeNode* Left,struct TreeNode* Right)
  10. {
  11. //当左右节点都为空时,时满足条件
  12. if(!Left&&!Right)
  13. return true;
  14. //当左右节点其中有一个为空时,不满足条件
  15. if(!Left||!Right)
  16. return false;
  17. //当左右节点不相等时,不满足条件
  18. if(Right->val!=Left->val)
  19. return false;
  20. //使用递归判断左孩子的左边和右孩子的右边,左孩子的右边和右孩子的左边是否满足条件
  21. return MyisSymmetric(Left->left,Right->right)&&MyisSymmetric(Left->right,Right->left);
  22. }
  23. bool isSymmetric(struct TreeNode* root) {
  24. //当跟节点为空时,满足条件
  25. if(root==NULL)
  26. return true;
  27. return MyisSymmetric(root->left,root->right);
  28. }

 

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

闽ICP备14008679号