最近重刷leetcode,又遇到了--101.对称二叉树:给定二叉树,检查它是否镜像对称。
例1,二叉树 [1, 2, 2, 3, 4, 4, 3]是对称的。
例2,二叉树[1, 2, 2, null, 3, null, 3]不是镜像对称的。
关于这两个例子,我的第一反应都是:二叉树的中序遍历可以判定镜像对称问题。
例1的中序遍历为:3, 2, 4, 1, 4, 2, 3 是对称的,该二叉树也是镜像对称的;
例2的中序遍历为:2, 3, 1, 2, 3 不对称,该二叉树也不是镜像对称的。
但在我尝试上述方法后,发现 针对二叉树[1, 2, 2, 2, null, 2]会报错。
因此,不能利用中序遍历判断镜像对称问题。一般情况下,我们还是使用递归法(比较两个树:左子树节点、右子树节点)和迭代法(将左右两个子树要比较的元素的放入队列)。