LC 101. 对称二叉树

15 阅读1分钟

题干

给你一个二叉树的根节点 root , 检查它是否轴对称。

 

示例 1:

输入: root = [1,2,2,3,4,4,3]
输出: true

思路

主要考察点:递归

  • 不同于深搜广搜这种一次访问一个节点的算法,递归需要一次访问一层。
  • 怎么样一次访问一层?dfs(left.left,right.right) && dfs(right.left,left.right);

解题

class Solution {
    public boolean isSymmetric(TreeNode root) {
        if (root==null) return true;
        return dfs(root.left,root.right);

    }
    public boolean dfs(TreeNode left,TreeNode right){
        if (left==null && right==null) return true;
        if (left==null|right==null) return false;
        if (left.val!=right.val)
            return false;
        else
            return dfs(left.left,right.right) && dfs(right.left,left.right);
    }
}