zoukankan      html  css  js  c++  java
  • 对称二叉树

    此博客链接:https://www.cnblogs.com/ping2yingshi/p/14111516.html

    对称二叉树(47min)

    题目链接:https://leetcode-cn.com/problems/symmetric-tree/submissions/

    题目

    给定一个二叉树,检查它是否是镜像对称的。

    例如,二叉树 [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

     题解

    思路1:递归,判断根节点的左子树和右子树是否相等,然后比较左子树的左子树和右子树的右子树是否相等,如果相等,则返回true,否则返回false。

    思路2:利用队列,把根的左子树和右子树先入队列,然后判断左子树的左子树和右子树的右子树是否相等,如果相等,则返回true,否则返回false。

    代码1

    class Solution {
        public boolean isSymmetric(TreeNode root) {
            if(root==null)
            return true;
            return  Ispanduan(root.left,root.right);
        }
          public boolean Ispanduan(TreeNode left,TreeNode right){
                if(left==null&&right==null)
                    return true;
                if(left==null||right==null||left.val!=right.val){
                    return false;
                 }
                return Ispanduan(left.left,right.right)&&Ispanduan(left.right,right.left);
            
        }
    }

    结果1

    代码2

    class Solution {
        public boolean isSymmetric(TreeNode root) {
            if(root==null)
            return true;
            // Queue <TreeNode> queue=new Linkedlist();
            Queue <TreeNode> queue=new LinkedList();
            queue.add(root.left);
            queue.add(root.right);
            while(!queue.isEmpty())
            {
               TreeNode left=queue.poll();
               TreeNode right=queue.poll();
               if(left==null&&right==null)
                    continue;
                if(left==null||right==null||left.val!=right.val)
                    return false;
                queue.add(left.left);
                queue.add(right.right);
                queue.add(left.right);
                queue.add(right.left);
            }
            return true;
            
        }
    }

    结果2

     耗时:

    1.在递归代码,需要同时满足左子树的左子树和右子树的右子树,左子树的右子树和右子树的左子树需要同时相等,才能判断是镜面对称。

    2.在写完判断时,忘记加大括号,一直没有找到报错的原因。

    出来混总是要还的
  • 相关阅读:
    每日总结2021.9.14
    jar包下载mvn
    每日总结EL表达语言 JSTL标签
    每日学习总结之数据中台概述
    Server Tomcat v9.0 Server at localhost failed to start
    Server Tomcat v9.0 Server at localhost failed to start(2)
    链表 java
    MVC 中用JS跳转窗体Window.Location.href
    Oracle 关键字
    MVC 配置路由 反复走控制其中的action (int?)
  • 原文地址:https://www.cnblogs.com/ping2yingshi/p/14111516.html
Copyright © 2011-2022 走看看