码迷,mamicode.com
首页 > 其他好文 > 详细

对称树

时间:2014-10-27 22:48:22      阅读:333      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   sp   div   log   bs   amp   ef   

 闲着没事,做两道题玩玩,有一些地方还是有一些意思的;

 

对称树

 1 ```c++
 2 bool isSymmetric(TreeNode *root)
 3 {
 4 //约定空树是对称的
 5 if(root==NULL)
 6 return true;
 7 else
 8 return isEqual(root->left,root->right);
 9 }
10 //判断是否对称,应该是有两个指针去指的,因此写一个两个指针参数的判断函数,递归的进行判断
11 bool isEqual(TreeNode *a,TreeNode *b)
12 {
13 //当前两个结点均为空,则这一步的判断上是对称的
14 if(a==NULL && b==NULL)
15 return true;
16 //只有一个为空,另一个不为空,显然不对称
17 else if(a==NULL || b==NULL)
18 return false;
19 //如果当前的两个结点非空且相等,则递归的判断他们的左右-右左结点
20 if(a->val == b->val)
21 return isEqual(a->left,b->right)&&isEqual(a->right,b->left);
22 else return false;
23 }
24 ```

其实对称树就是从根节点开始,用两个指针分别指针两边,然后判断是否相等(包括值相等、或者均为空),就是isEqual函数,用递归写的,也很简洁。

对称树

标签:style   blog   color   sp   div   log   bs   amp   ef   

原文地址:http://www.cnblogs.com/gaoduan/p/4055188.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!