zoukankan      html  css  js  c++  java
  • isSymmetric

    给定一个二叉树,检查它是否是镜像对称的。
    
    例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
    
        1
       / 
      2   2
     /  / 
    3  4 4  3
     
    
    但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
    
        1
       / 
      2   2
          
       3    3
    // 这一题与前一题很相似,将对称树看成两颗树求解比较巧妙
    
    public boolean isSymmetric(TreeNode root) {
            return check(root, root);
        }
    
        public boolean check(TreeNode p, TreeNode q){
            Queue<TreeNode> queuep = new LinkedList<>();
            queuep.add(p);
            queuep.add(q);
            while (!queuep.isEmpty()) {
                TreeNode t1 = queuep.poll();
                TreeNode t2 = queuep.poll();
                if (t1 == null && t2 == null) {
                    continue;
                }
                if (t1 == null || t2 == null) {
                    return false;
                }
                if (t1.val != t2.val) {
                    return false;
                }
                queuep.add(t1.left);
                queuep.add(t2.right);
    
                queuep.add(t1.right);
                queuep.add(t2.left);
            }
            return true;
        }
    
  • 相关阅读:
    Freemarker空值判断
    php集成开发环境IDE
    mysql卸载
    Apache网站根目录
    冒泡排序
    线程操作
    通过滚轮改变图片大小
    Timer计时器
    写异常日志
    异常处理
  • 原文地址:https://www.cnblogs.com/athony/p/13047760.html
Copyright © 2011-2022 走看看