给你一个二叉树的根节点 root , 检查它是否轴对称。
示例 1:
输入:root = [1,2,2,3,4,4,3]
输出:true
示例 2:
输入:root = [1,2,2,null,3,null,3]
输出:false
提示:
1、树中节点数目在范围 [1, 1000] 内
2、-100 <= Node.val <= 100
思路:
本题使用递归,终止条件是递归到叶子节点,判断该节点的左树的右孩子等不等于右树的左孩子
代码:
class Solution {
private boolean isSymmetricChild(TreeNode leftTree,TreeNode rightTree){
if (leftTree==null&&rightTree==null){
return true;
}
if (leftTree==null&&rightTree!=null||leftTree!=null&&rightTree==null){
return false;
}
if (leftTree.val==rightTree.val){
return isSymmetricChild(leftTree.left,rightTree.right)&&isSymmetricChild(leftTree.right,rightTree.left);
}
return false;
}
public boolean isSymmetric(TreeNode root) {
if (root==null){
return true;
}
return isSymmetricChild(root.left,root.right);
}
}