范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

二叉树的四种遍历(递归与非递归)

  先序遍历与后序遍历
  先序遍历根节点,再遍历左子树,再遍历右子树。
  后序遍历先遍历左子树,再遍历右子树,再遍历根节点。
  先序遍历递归实现: public static void preOrderByRecursion(TreeNode root) {     // 打印节点值     System.out.println(root.value);     preOrder(root.left);     preOrder(root.right); }
  先序遍历的非递归实现:
  非递归实现需要借助栈这样一个数据结构,实际上递归实现也是依靠栈,只不过是隐式的。 先将根节点压入栈中。 弹出栈中的节点,将弹出节点的右子节点压入栈中,再将弹出节点的左子树压入栈中。 重复步骤2,直到栈为空。 public static void preOrder(TreeNode root) {     if (root == null) {         return;     }     Stack stack = new Stack<>();     stack.push(root);     while (!stack.empty()) {         TreeNode node = stack.pop();         // 打印节点值         System.out.print(node.value + " ");         if (node.right != null) {             stack.push(node.right);         }         if (node.left != null) {             stack.push(node.left);         }     } }
  后序遍历递归实现:先序遍历反过来,就不赘述了。 public static void postOrderByRecursion(TreeNode root) {     postOrderByRecursion(root.left);     postOrderByRecursion(root.right);     System.out.println(root.value); }
  后序遍历非递归实现:后序遍历就是先序遍历反过来,所以需要两个栈,多出来的栈用来反向输出。 public static void postOrder(TreeNode root) {     if (root == null) {         return;     }     Stack s1 = new Stack<>();     Stack s2 = new Stack<>();     s1.push(root);     while (!s1.empty()) {         TreeNode node = s1.pop();         s2.push(node);         if (node.left != null) {             s1.push(node.left);         }         if (node.right != null) {             s1.push(node.right);         }     }     while (!s2.empty()) {         System.out.println(s2.pop().value);     } } 中序遍历
  中序遍历先遍历左子树,再遍历根节点,再遍历右子树。
  递归遍历: public static void inOrderByRecursion(TreeNode root) {     if (root == null) {         return;     }     inOrderByRecursion(root.left);     // 打印节点值     System.out.println(root.value);     inOrderByRecursion(root.right); }
  非递归遍历: 将二叉树的左侧"边"从上到下依次压入栈中。 从栈中弹出节点 对以弹出节点的右子节点为根节点的子树,重复步骤1。 重复2、3步骤,直到栈为空。 public static void inOrder(TreeNode root) {     if (root == null) {         return;     }     Stack stack = new Stack<>();     TreeNode cur = root;      while (cur != null) {         stack.push(cur);         cur = cur.left;     }      while (!stack.empty()) {         TreeNode node = stack.pop();         System.out.println(node.value);         cur = node.right;         while (cur != null) {             stack.push(cur);             cur = cur.left;         }     } } 层序遍历
  层序遍历顾名思义就是一层一层,从左到右的遍历二叉树。需要用到队列这一数据结构。 将根节点推入队列。 从队列中取出一个节点。 先将取出节点的左子节点推入队列,再将取出节点的右子节点推入队列。 重复2、3步骤直到队列中无节点可取。 public static void floorOrder(TreeNode root) {     if (root == null) {         return;     }     Queue queue = new LinkedList<>();     queue.add(root);     while (!queue.isEmpty()) {         TreeNode node = queue.poll();         System.out.println(node.value);         if (node.left != null) {             queue.add(node.left);         }         if (node.right != null) {             queue.add(node.right);         }     } }

十一旅行必备!FindX2解锁拍照新姿势,会按快门就行众所周知,今年的国庆和中秋撞在一起了,所以今年的国庆小长假共有8天的假期。随着国庆假期的到来,对于大多数人来说终于可以抛开工作的烦恼,出去看看外面的世界了。说到去看看外面的世界,手国产手机出海标杆!OPPO拿下电子消费品榜单TOP5近日,数码大V秦一一曝光了一组很有意思的榜单,那就是VisualCapitalist统计的各类电子消费品TOP品牌榜单。从榜单大品类来看没分别有智能手机操作系统芯片无线耳机以及智能比亚迪获前三季度新能源汽车销量冠军,车载显示屏用量与尺寸齐升发展新能源汽车是中国从汽车大国迈向汽车强国的必由之路,也是未来中国汽车走向世界,在汽车领域实现弯道超车的重要一环。来到新能源汽车趋势发展不可逆的时代,可以看到很多自主品牌汽车正在快三星壁纸崩溃解决方案(原创)首先啥都别说了,不作死就不会死,那张图片真的会把系统搞崩溃,千真万确!头铁的我不信邪,手贱换了壁纸,真的崩溃了。(国行note9512)废话不说,直接捞干货,说说怎么处理。首先,这旧皇新战2021年三星note9vs华为p20pro三星note9华为p20pro可以称得上当年国内国外的安卓机皇,昔日旗舰不知今日表现如何?二皇相争,谁又更胜一筹?今天就来对比测评一下。介绍选手,手上三星note9是国行512g版最受欢迎的华为Mate系列产品,发布一年依然保持高端华为是目前中国最受欢迎的手机品牌。每一款手机都经过精心的提炼,华为手机已经成为全球市场占有率最高的手机品牌。国内用户也特别喜欢华为手机。华为Mate30是华为目前Mate系列的旗舰实力藏不住!FindX2这屏幕效果感受一下,苹果都被比下去屏幕作为我们使用手机的主要载体,其重要性也与日俱增。今年以来,市场上就出现了多部搭载120Hz屏幕的机型,其中又以OPPOFindX2Pro的关注度最高,它凭借着120Hz刷新率3遇见过往开启序章所有遇见,皆有因果所有过往,皆为序章!过往所有遇见,皆有因果遇见的景皆为心生,我们还不知道会遇见怎样的景,但却仿佛那样熟悉,熟悉得仿佛遇见过,或许只是在梦里过往的事皆为序章,我们还瓦罐党注意了!A4系最好看的车型,颜值高又实用,趁改款前抄底!不少年轻消费者都会喜欢旅行版的车型,车型独特个性,而且外观方面也更为突显车身线条,多了几分优雅。说到旅行车,不得不提奥迪,拥有多款旅行车,包括性能版越野的,多种用途,也是玩旅行车比都说奇骏车型老油腻,可我认为偏偏适合年轻家庭的首选车型导购最近朋友问我,拿20万预算想买辆SUV,看了本田CRV和丰田新荣放,问我选哪辆更好。我反倒推荐了一款没在他考虑范围的车型,就是日产的奇骏。为什么会推荐这款?主要是朋友的购车买雷克萨斯ES选混动还是自吸,价格相差8万混动车型性价比高吗?雷克萨斯一直是一个较为特别的豪华品牌,保持着全进口的形式进入国内,且销量近年还有不错的增长,对比同日系的两个豪华品牌,形势可谓一片大好,国产换销量这一套不一定适用于所有豪华品牌。当
重启MX梦想系列?魅族新款旗舰将至,比魅族18更强魅族科技前段时间复活了魅蓝品牌,作为魅族的子品牌,魅蓝曾推出了多款热门的中低端智能手机,并且也帮助魅族获得了两千万部的年销量不过由于利润相对较低,魅族放弃了魅蓝手机,魅族品牌的负责你能接受没有网络吗?我来自农村没有网络很正常的事,许多老人都在用老年机,这么多年我从老年机用到4G手机,一直都很省。1。去年买了个5G手机,是因为去年因为疫情外出打工不易,厂里订单少,我们农民工又不敢电动车事故频发,理想和小鹏改辅助驾驶文案自动改智能出品三言财经作者DorAemon今日,有网友发现,理想汽车官网里对辅助驾驶系统的名称做了改变。原理想官网辅助驾驶系统名称中包含高级二字现已将高级一词去除根据该网友上传的截图显示,理国产屏正在崛起,三星神话破灭指日可待,OLED面板首次跌破70手机屏幕应该是现在智能手机唯二最被关注的配置,另外一个是相机。最近两年随着高刷屏被带火,手机厂商都开始在屏幕上发力。如果自家的旗舰机不在发布会上说耗费几个亿打磨一块屏幕,似乎显得自Windowsmp3gain1。3。5c1。4汉化版mp3gain中文版是一款非常优秀的MP3音量平衡调整软件,这是经过我要汉化工作室所处理过的一个版本,因为源程序是默认英文语言的,而这对国人就十分的不友好,但是该软件又非常的好用,realmeFlash,安卓首款磁吸无线充电手机本期内容应前几期粉丝留言投稿,所以小编带各位小伙伴来了解一下这款安卓首款磁吸无线充电手机!真我Flash这款手机性能方面,可能搭载了高通骁龙888plusLPDDR5UFS3。1,iQOO8怎么样?iQOO8最新上市价格还未公布,上市时间为2021年08月4日。这款手机多款配色十分吸睛,颜值相当耐打。首先,我们关注屏幕方面,屏幕尺寸为6。56英寸。分辨率为24001080,屏手机屏幕触控失灵,那是这几点没有做好点亮好奇心在我们生活当中的一些使用习惯,对手机屏幕的寿命也会有着很大的影响,如果想要让自己的手机屏幕一直保持在正常状态的话,在平时要避开一些坏习惯,接下来跟大家讲解在平时会做出一些1000兆宽带手机测速应该达到多少?先确认是否真千兆网速,999M四舍五入也能叫千兆,但那还是百兆网速。真千兆需用万兆光猫,甪千兆双频猫的都是百兆网。测速需运营商师傅当面上设备或使用运营商指定测速软件才能测准,而且必父亲想把旧电脑给女儿,女儿却说父亲偏心,父亲有钱自己买都说穷养儿子富养女,这句话的意思就是说女儿要富着养,儿子要穷着养,事实上也并不一定,这个跟孩子的生存环境有关家庭条件有关家庭规矩有关,就在今天,我就碰到了一位父亲带着女儿过来修电脑资讯丨京东方联手OPPO发布下一代屏下摄像头技术,真400PPI加持全面屏是手机发展的大趋势,屏下摄像头技术则被誉为全面屏手机的终极解决方案。有媒体表示,2022年或将是屏下摄像头进入主流的一年。近日,在OPPO未来影像技术发布会上,OPPO携手B