题目描述(简单难度)

判断一个二叉树是否关于中心轴对称。

解法一

和 判断两个二叉树是否相等其实是一样的思路,都是用某种遍历方法来同时遍历两个树,然后看是否对应相等

这里的需要遍历的两个树就是左子树和右子树了。

这里的对应相等的话,因为判断左子树 A 和右子树 B 是否对称,需要判断两点。

  • A 的根节点和 B 的根节点是否相等

解法二 DFS 栈

解法一其实就是类似于 DFS 的先序遍历。不同之处是对于 left 子树是正常的先序遍历 根节点 -> 左子树 -> 右子树 的顺序,对于 right 子树的话是 根节点 -> 右子树 -> 左子树 的顺序。

所以我们可以用栈,把递归改写为迭代的形式。

当然我们也可以使用中序遍历或者后序遍历,是一样的道理。

解法三 BFS 队列

DFS 考虑完了,当然还有 BFS,一层一层的遍历两个树,然后判断对应的节点是否相等即可。

总体上来说和 100 题 是一样的,只不过这里的两棵树对应相等,是左对右,右对左。

添加好友一起进步~

如果觉得有帮助的话,可以点击 给一个 star 哦 ^^