LeetCode-101.对称二叉树

乐云一
  • 刷题日记
  • LeetCode
About 252 wordsLess than 1 minute

示例

    1
   / \
  2   2
 / \ / \
3  4 4  3

思路

对称二叉树,又是一道二叉树遍历问题。 和LeetCode-100.相同的树open in new window思路类型,但是由于镜像的原因。 遍历树的过程需要反向插入节点。 结构的判断也不能判断节点相同或是不同了,需要考虑一个为空和另一个为空的情况。 不过原理还是那样,使用深度优先遍历,从左节点和右节点出发。因为是镜像,所以根节点一定相同。 然后遍历左节点的右孩子与右节点的左孩子,以此达到镜像遍历的效果

代码

    public boolean isSymmetric(TreeNode root) {
        return isTrue(root.left,root.right);
    }

    public boolean isTrue(TreeNode left,TreeNode right){
        if(left==null && right==null){
            return true;
        }
        if(left==null || right==null){
            return false;
        }
        return left.val==right.val && isTrue(left.left,right.right) && isTrue(left.right,right.left);
    }
Last update:
Contributors: leyunone
Comments
  • Latest
  • Oldest
  • Hottest
Powered by Waline v2.14.7