您的位置:首页 > 职场人生

(剑指Offer)面试题59:对称的二叉树

2016-10-08 22:45 253 查看


题目:

请实现一个函数,用来判断一颗二叉树是不是对称的。

注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。


思路:

对于一棵二叉树,从根结点开始遍历,

如果左右子结点有一个为NULL,那么肯定不是对称二叉树;

如果左右子结点均不为空,但不相等,那么肯定不是对称二叉树;

如果左右子结点均不为空且相等,那么

遍历左子树,遍历顺序为:当前结点,左子树,右子树;

遍历右子树,遍历顺序为:当前结点,右子树,左子树;

如果遍历左子树的序列和遍历右子树的序列一样,那么该二叉树为对称的二叉树。(递归实现)

另外一种角度考虑:

把每个结点的左右子树分别看成一棵独立的二叉树,那么判断该二叉树是否为对称的,只需判断左右子树是否互为镜像即可。


在线测试OJ:

http://www.nowcoder.com/books/coding-interviews/ff05d44dfdb04e1d83bdbdab320efbcb?rp=3

AC代码:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: