首页 > 其他分享 >学完层序,真的直接一口气,不用任何递归,搞定10道题

学完层序,真的直接一口气,不用任何递归,搞定10道题

时间:2022-12-25 23:34:17浏览次数:44  
标签:10 right TreeNode cur 层序 queue 道题 null left

102. 二叉树的层序遍历

class Solution {
    public List<List<Integer>> levelOrder(TreeNode root) {
        Queue<TreeNode> queue = new LinkedList<>();
        List<List<Integer>> listList = new ArrayList<>();
        TreeNode cur = root;
        if (cur == null) {
            return listList;
        }
        queue.offer(cur);
        int len;
        while (!queue.isEmpty()) {
            len = queue.size();
            List<Integer> list = new ArrayList<>();
            while (len > 0) {
                cur = queue.poll();
                list.add(cur.val);
                if (cur.left != null) {
                    queue.offer(cur.left);
                }
                if (cur.right != null) {
                    queue.offer(cur.right);
                }
                len--;
            }
            listList.add(list);
        }
        return listList;
    }
}

226. 翻转二叉树

class Solution {
    public TreeNode invertTree(TreeNode root) {
    Queue<TreeNode> queue = new LinkedList<>();
        TreeNode cur = root;
        if (cur == null) {
            return cur;
        }
        queue.offer(cur);
        int len;
        while (!queue.isEmpty()) {
            len = queue.size();
            int size = len;
            while (len > 0) {
                cur = queue.poll();
                swap(cur);
                if (cur.left != null) {
                    queue.offer(cur.left);
                }
                if (cur.right != null) {
                    queue.offer(cur.right);
                }
                len--;
            }
        }
        return root;
    }
    public void swap(TreeNode treeNode) {
        TreeNode node;
        node = treeNode.left;
        treeNode.left = treeNode.right;
        treeNode.right = node;
    }
}

101. 对称二叉树

class Solution {
   public boolean isSymmetric(TreeNode root) {
        return compare(root.left,root.right );
    }

    public boolean compare(TreeNode left, TreeNode right) {
        boolean bool1=false;
        if (left == null && right == null) {
            return true;
        }
        // 有了上面的判断, 就可以保证可不能是两个null,
        // 这样下面,只要有null,就一定是只有一个null
        if (left == null || right == null) {
            return false;
        }
        if (left.val == right.val) {
            bool1 = true;
        }
        boolean bool2 = compare(left.left, right.right);
        boolean bool3 = compare(left.right, right.left);
        return bool1 & bool2 & bool3;
    }
}

标签:10,right,TreeNode,cur,层序,queue,道题,null,left
From: https://www.cnblogs.com/Chain-Tian/p/17004853.html

相关文章

  • P4310 绝世好题
    P4310绝世好题题意:给定一个长度为\(n\)的数列\(a_i\),求\(a_i\)的子序列\(b_i\)的最长长度\(k\),满足\(b_i\&b_{i-1}\ne0\),其中$2\lei\lek$,&表示位......
  • Odoo 基于Win10搭建基于Win10搭建odoo14开发环境搭建
    实践环境win10Python3.6.2odoo_14.0.latest.tar.gz下载地址:https://download.odoocdn.com/download/14/src?payload=MTY3MDg1MTM3Ni4xNC5zcmMud0tZRWZLX2I5UVF0Tm51U......
  • AIR32F103(七) AIR32F103CBT6/CCT6启用96K内存
    目录AIR32F103(一)合宙AIR32F103CBT6开发板上手报告AIR32F103(二)Linux环境和LibOpenCM3项目模板AIR32F103(三)Linux环境基于标准外设库的项目模板AIR32F103(四)2......
  • 2021级《JAVA语言程序设计》上机考试试题10
    教学副院长功能页 <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><metacharset="UTF-8">......
  • MobPush消息推送帮你提升APP日活10%
    MobPush智能多通道推送系统作为Mob重磅推出的一款消息推送明星产品,目前已在电商、游戏、新零售、金融等行业广泛应用,作为MobTech推出来的一款免费的APP消息推送工具,MobPush......
  • Windows10系统 无法更换锁屏图片一直转圈圈(含替换系统默认锁屏壁纸教程)异常处理
    (目录)一、异常错误Windows10系统锁屏界面无法更换图片,浏览选择别的壁纸后一直转圈二、原因联想电脑管家中,联想锁屏强制开启,导致无法更换壁纸,需要手动关闭还是联想......
  • P1044 [NOIP2003 普及组] 栈
    题目背景栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表。栈有两种最重要的操作,即pop(从栈顶弹出一个元素)和push(将一个元素进栈)。栈的重要......
  • Java编程思想10
    第十五章:泛型我们希望达到的目的是编写更通用的代码,要使代码能够应用于“某种不具体的类型”,而不是一个具体的接口或类。简单泛型​有许多原因促进了泛型的出现,而最引人......
  • 推荐-centos7安装高版本python3.10
    前言如果在centos7上编译安装python3.7以上版本,ssl功能会出问题,因为python3.7以后需要更高版本的openssl支持,这样的话,就需要提前编译安装高版本的openssl,比如1.1.1系列,这......
  • 10个JavaScript代码片段,帮助你成为更好的开发者
    英文 | ​​https://medium.com/better-programming/10-javascript-code-snippets-you-can-use-right-now-e1bb7c7ec35e​​翻译|web前端开发(ID:web_qdkf)毫无疑问,JavaS......