欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

leetcode 对称二叉树

程序员文章站 2022-07-14 18:05:39
...

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

例如,二叉树 [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

说明:

如果你可以运用递归和迭代两种方法解决这个问题,会很加分。

解题思路:

利用递归的方法。

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public boolean isSymmetric(TreeNode root) {
        
	if(root==null)return true;
	if(root.left ==null && root.right==null) {
		return true;
	}
	if(root.left ==null ||root.right==null) {
		return false;
	}	
	return isSame(root.left,root.right);        
    
    }
    
    public static boolean isSame(TreeNode left,TreeNode right) {
	if(left==null && right ==null)return true;
	if(left ==null || right==null) {
		return false;
	}
		return (left.val==right.val)&& isSame(left.left,right.right) && isSame(left.right,right.left);
    }	
}

 

相关标签: leetcode java