Leetcode 101、对称二叉树
递归
判断一棵树是否是对称二叉树,只需要根节点下的两个子树是否对称。对称的意思是:左孩子的右节点 = 右孩子的左节点;左孩子的左节点 = 右孩子的右节点。
class Solution {
public boolean isSymmetric(TreeNode root) {
if(root == null || (root.left == null && root.right == null)) return true;
return is(root.left, root.right);
}
public boolean is(TreeNode p, TreeNode q) {
if(p == null &&q == null) return true;
if(p == null || q == null ||p.val != q.val) return false;
boolean one = is(p.right, q.left);
boolean two = is(p.left, q.right);
return p.val == q.val && one && two;
}
}