题目
给定一个二叉树,检查它是否是镜像对称的。链接
思路
递归
- 从root的左右孩子开始判断
- 若左右孩子都不为空,判断值是否相等,不相等返回false,相等则下层递归
(左孩子.left,右孩子.right)&&(右孩子.left,左孩子.right)
。- 若左右孩子有一个为空,返回false
/**
* 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;
}
return helper(root.left,root.right);
}
public boolean helper(TreeNode t1,TreeNode t2){
if(t1==null||t2==null){
return t1==t2;
}
return (t1.val==t2.val)&&helper(t1.left,t2.right)&&helper(t1.right,t2.left);
}
}