题目描述(简单难度)
判断一个二叉树是否关于中心轴对称。
解法一
和 判断两个二叉树是否相等其实是一样的思路,都是用某种遍历方法来同时遍历两个树,然后看是否对应相等。
这里的需要遍历的两个树就是左子树和右子树了。
这里的对应相等的话,因为判断左子树 A 和右子树 B 是否对称,需要判断两点。
- A 的根节点和 B 的根节点是否相等
解法二 DFS 栈
解法一其实就是类似于 DFS 的先序遍历。不同之处是对于 left 子树是正常的先序遍历 根节点 -> 左子树 -> 右子树 的顺序,对于 right 子树的话是 根节点 -> 右子树 -> 左子树 的顺序。
所以我们可以用栈,把递归改写为迭代的形式。
当然我们也可以使用中序遍历或者后序遍历,是一样的道理。
解法三 BFS 队列
DFS 考虑完了,当然还有 BFS,一层一层的遍历两个树,然后判断对应的节点是否相等即可。
总
总体上来说和 是一样的,只不过这里的两棵树对应相等,是左对右,右对左。
添加好友一起进步~
如果觉得有帮助的话,可以点击 这里 给一个 star 哦 ^^