LeetCode-101-对称二叉树

题目

给定一个二叉树,检查它是否是镜像对称的。

 

例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

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

但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:

    1
   / \
  2   2
   \   \
   3    3

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/symmetric-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路

这个题用递归其实很简单,拿来记录的原因是,看评论区看到一个点:

若在isSymmetric方法中调用isMirror(root, root)时,会多算一倍。

代码

class Solution {
            public boolean isSymmetric(TreeNode root) {
	    	if (root == null) return true;
	    	return isMirror(root.left, root.right);
	    }
	    
	    private boolean isMirror(TreeNode left, TreeNode right){
	    	if (left == null && right == null) return true;
	    	if (left == null || right == null) return false;
	    	if (left.val == right.val) return isMirror(left.left, right.right)&& isMirror(left.right, right.left);
	    	return false;
	    }
}

 

你可能感兴趣的:(递归,编程算法,leetcode,树,对称树,面试,算法)