题解 | #对称的二叉树#

对称的二叉树

http://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb

思路: 对左右子树进行判断,左子树的右子树是否等于右子树的阿左子树 递归要注意边界判断 1、如果左子树位空就要判断右子树是否为空,为空就返回ture,不为空就不是对称二叉树 2、如果通过第一层判断,那么只要右子树为空就一定不是对称二叉树 3、如果左右子树的值相等,就分别对左子树的右子树和右子树的左子树,以及左子树的左子树和右子树的右子树进行判断

public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    boolean isSymmetrical(TreeNode pRoot) {
        
        if (pRoot==null||(pRoot.left==null&&pRoot.right==null)){
            return true;
        }
        if ((pRoot.right==null&&pRoot.left!=null)||(pRoot.right!=null&&pRoot.left==null)){
            return false;
        }
        TreeNode a=pRoot.left;
        TreeNode b=pRoot.right;
        boolean oj=isSymmetricals(a,b);
        return oj;
    }
     private static boolean isSymmetricals(TreeNode a, TreeNode b) {
       if (a==null){
            return b==null;
        }
        if (b==null){
            return false;
        }
        if (a.val==b.val){
            boolean h2=isSymmetricals(a.right,b.left)&&isSymmetricals(a.left,b.right);
            return h2;
        }else{
            return false;
        }
    }
}
全部评论

相关推荐

李橙子:结果虽不够理想,但过程本身已是宝贵的淬炼。能把学习机会放在薪酬之前,证明你目光长远。先踏实进去,用这段时间扎实学好Python后端,把公司项目吃透,你的价值会在下一份工作中完全体现。这个起点,值得。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务