据说是豌豆荚的一道面试题。
定义啥是轴对称二叉树:
如下图所示:(图片来自:http://blog.csdn.net/wzy_1988/article/details/12952005, 原题也是来自此处)
节点的值并不严格要求相等。
解题思路:
1. 空树,返回false
2. 只有根的树, 返回false
3. 左右子树 以根为轴对称中心 对称,返回true
对3求解:
1. 层次遍历左子树,先左孩子,后右孩子
2. 层次遍历右子树,先右孩子,后左孩子
若左子树的遍历结果与右子树的遍历结果一致,则该二叉树为轴对称树。
如上图,由于对节点的值并不要求严格相等,我们用1表示节点存在,0表示节点不存在。
左子树的遍历结果为: 11101 (先左孩子后右孩子)
右子树的遍历结果为: 11101 (先右孩子后左孩子)
遍历结果一致,所以是轴对称二叉树。
有人会问,层次遍历,用队列实现,