题目描述
给你一个二叉树的根节点 root , 检查它是否轴对称。
代码
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
//从根节点分出两个指针,然后验证是否对称
public boolean dfs(TreeNode l, TreeNode r){
if(l==null && r==null) return true; //叶子节点是对称的
else if(l==null || r==null) return false; //否则只有一个子节点就是不对称
return l.val==r.val && dfs(l.left, r.right) && dfs(l.right, r.left);
}
public boolean isSymmetric(TreeNode root) {
return dfs(root, root);
}
}