码迷,mamicode.com
首页 > 其他好文 > 详细

面试题28:对称的二叉树

时间:2020-01-29 21:43:39      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:迭代   strong   ||   bsp   平衡   平衡二叉树   注意   试题   pre   

1、题目描述:

  请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

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) {
        return isSymmetrical(pRoot,pRoot);

    }
    public static boolean isSymmetrical(TreeNode pRoot1,TreeNode pRoot2){
        //所有的遍历节点全都比较完了
        if(pRoot1==null && pRoot2==null){
            return true;
        }
        //若比较的两个节点不一起遍历完,就返回false
        if(pRoot1==null || pRoot2==null){
            return false;
        }
        //遍历的两个节点值不相等,返回false
        if(pRoot1.val != pRoot2.val){
            return false;
        }
        
        //前序遍历 根左右,前序遍历的对称遍历方式 根右左,这两个结果都相同,这个二叉树就对称
        return isSymmetrical(pRoot1.left,pRoot2.right) && isSymmetrical(pRoot1.right,pRoot2.left);
        
    }
    
}

 

面试题28:对称的二叉树

标签:迭代   strong   ||   bsp   平衡   平衡二叉树   注意   试题   pre   

原文地址:https://www.cnblogs.com/guoyu1/p/12241357.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!