当前位置: 首页 > java >正文

面试手撕——迭代法中序遍历二叉树

思路

访问顺序和处理顺序不一致导致迭代法难写,体现在总要先遍历根节点,才能访问左右孩子,用null标记,null标记的节点表示已经访问过了,下一次可以处理,所以在当前栈顶节点不是null的时候,都要进行入栈,由于是左根右的处理顺序,所以压栈的时候要右根左压栈。

代码

import java.util.Stack;public class InOrderTraversalBinaryTree {static class TreeNode{int val;TreeNode left;TreeNode right;TreeNode(int v){this.val = v;this.left = null;this.right = null;}}static void InOrderTra(TreeNode root){if(root == null) return;if(root.left != null) InOrderTra(root.left);System.out.println(root.val);if(root.right != null) InOrderTra(root.right);}public static void main(String[] args) {TreeNode root = new TreeNode(7);TreeNode left = new TreeNode(3);TreeNode right = new TreeNode(10);root.left = left;root.right = right;
//      递归法
//        InOrderTra(root);Stack<TreeNode> st = new Stack<>();if(root != null)st.push(root);while(!st.isEmpty()){TreeNode node = st.peek();if(node != null){st.pop();if(node.right != null) st.push(node.right);st.push(node);st.push(null);if(node.left != null) st.push(node.left);}else{st.pop();node = st.peek();st.pop();System.out.println(node.val);}}}}
http://www.xdnf.cn/news/3412.html

相关文章:

  • 负载均衡深度实践:基于Nginx+Keepalived的高可用方案与Zabbix监控设计
  • Cesium Entity动态更新
  • 嵌入式AI还是一片蓝海
  • Day107 | 147.对链表进行插入排序 | 简单选择、冒泡、直接插入
  • 【专题五】位运算(2)
  • AXI中的out of order和interleaving的定义和两者的差别?
  • OSPF的路由
  • Go-web开发之社区功能
  • Java 中那些奇怪的空指针报错场景及解决方案NullPointerException
  • 【计算机视觉】语义分割:MMSegmentation:OpenMMLab开源语义分割框架实战指南
  • MySQL数据同步之Canal讲解
  • 2025年- H16-Lc124-169.多数元素(技巧)---java版
  • 7.0/Q1,GBD数据库最新文章解读
  • ClackyAI:下一代智能云开发环境的技术革新与实践价值
  • WPF使用依赖注入框架AutoMapper
  • 仿腾讯会议——服务器结构讲解
  • Matlab/Simulink - BLDC直流无刷电机仿真基础教程(四) - PWM调制模拟
  • 后端工程师需要掌握哪些基础技能
  • 机器人--底盘
  • 人才答辩ppt优化技巧_杰青_优青_万人计划青年拔尖人才_青年长江学者ppt制作案例
  • 2025五一杯A题五一杯数学建模思路代码文章教学:支路车流量推测问题
  • 部署.NET6.0 Web API项目到Docker
  • 实现了一个基于寄存器操作STM32F103C8t6的工程, 并实现对PA1,PA2接LED正极的点灯操作
  • npm宿主依赖、宿主环境依赖(peerDependencies)(指由宿主环境提供的依赖)
  • 网络安全防火墙技术有哪些?网络防火墙的主要作用
  • 在ASP.NET MVC中使用Repeater指南
  • 【浅尝Java】Java简介第一个Java程序(含JDK、JRE与JVM关系、javcdoc的使用)
  • Seata服务端回滚事务核心源码解析
  • springboot中异步接口实现所有方式_20250501
  • 内存 “舞台” 上,进程如何 “翩翩起舞”?(转)