算法面试——二叉树遍历:递归、非递归、重建二叉树
二叉树遍历是算法面试的绝对基础。递归写法要熟练非递归写法要能手撕。一、前序遍历voidpreorder(TreeNoderoot){if(rootnull)return;System.out.print(root.val );preorder(root.left);preorder(root.right);}voidpreorderIter(TreeNoderoot){StackTreeNodestacknewStack();if(root!null)stack.push(root);while(!stack.isEmpty()){TreeNodenodestack.pop();System.out.print(node.val );if(node.right!null)stack.push(node.right);if(node.left!null)stack.push(node.left);}}二、中序遍历voidinorderIter(TreeNoderoot){StackTreeNodestacknewStack();TreeNodecurrroot;while(curr!null||!stack.isEmpty()){while(curr!null){stack.push(curr);currcurr.left;}currstack.pop();System.out.print(curr.val );currcurr.right;}}三、后序遍历最难的非递归ListIntegerpostorderIter(TreeNoderoot){LinkedListIntegerresultnewLinkedList();StackTreeNodestacknewStack();if(root!null)stack.push(root);while(!stack.isEmpty()){TreeNodenodestack.pop();result.addFirst(node.val);// 头插法相当于逆序if(node.left!null)stack.push(node.left);if(node.right!null)stack.push(node.right);}returnresult;// 输出顺序左右根}四、层序遍历ListListIntegerlevelOrder(TreeNoderoot){ListListIntegerresultnewArrayList();QueueTreeNodequeuenewLinkedList();queue.offer(root);while(!queue.isEmpty()){intsizequeue.size();ListIntegerlevelnewArrayList();for(inti0;isize;i){TreeNodenodequeue.poll();level.add(node.val);if(node.left!null)queue.offer(node.left);if(node.right!null)queue.offer(node.right);}result.add(level);}returnresult;}五、重建二叉树publicTreeNodebuildTree(int[]preorder,int[]inorder){returnbuild(preorder,0,inorder,0,inorder.length-1);}privateTreeNodebuild(int[]pre,intpreStart,int[]in,intinStart,intinEnd){if(preStartpre.length||inStartinEnd)returnnull;TreeNoderootnewTreeNode(pre[preStart]);introotIdxinStart;while(in[rootIdx]!root.val)rootIdx;intleftLenrootIdx-inStart;root.leftbuild(pre,preStart1,in,inStart,rootIdx-1);root.rightbuild(pre,preStartleftLen1,in,rootIdx1,inEnd);returnroot;} 觉得有用的话点赞 关注【张老师技术栈】吧每周更新 Java/Python/爬虫 实战干货不让你白来。

相关新闻

HarmonyOs应用《重要日》开发第25篇 - 像素风格 UI 设计在鸿蒙中的实践

HarmonyOs应用《重要日》开发第25篇 - 像素风格 UI 设计在鸿蒙中的实践

本文从 UI 设计的角度分析 ImportantDays 项目的视觉设计语言,包括色彩体系、排版规范、卡片设计、阴影与圆角、图标使用、空状态设计,以及如何在 ArkUI 声明式 UI 中实现一致的设计风格。一、设计语言概述 ImportantDays 采用简约现代的 UI 设计风格&am…

2026/8/1 3:25:26 阅读更多 →
BlenderGIS三维地理可视化插件:7大常见问题终极排查指南

BlenderGIS三维地理可视化插件:7大常见问题终极排查指南

BlenderGIS三维地理可视化插件:7大常见问题终极排查指南 【免费下载链接】BlenderGIS Blender addons to make the bridge between Blender and geographic data 项目地址: https://gitcode.com/gh_mirrors/bl/BlenderGIS BlenderGIS作为连接Blender与地理数…

2026/7/31 22:37:57 阅读更多 →
3分钟快速上手DeepL Chrome翻译插件:告别复制粘贴的终极解决方案

3分钟快速上手DeepL Chrome翻译插件:告别复制粘贴的终极解决方案

3分钟快速上手DeepL Chrome翻译插件:告别复制粘贴的终极解决方案 【免费下载链接】deepl-chrome-extension A DeepL Translator Chrome extension 项目地址: https://gitcode.com/gh_mirrors/de/deepl-chrome-extension 还在为阅读外文网页而烦恼吗&#xff…

2026/7/31 6:14:57 阅读更多 →

最新新闻

CPU与芯片:从核心概念到制造工艺与选型实战全解析

CPU与芯片:从核心概念到制造工艺与选型实战全解析

1. 从沙子到算力:CPU究竟是什么? 我们每天都在和它打交道,但可能从未真正了解过它。当你滑动手机屏幕、敲击键盘、或是等待一个网页加载时,那个在幕后默默进行亿万次计算的“大脑”,就是中央处理器,也就是我…

2026/8/1 5:00:39 阅读更多 →
ARM内核DMIPS/MHz详解:从Cortex-M到Cortex-A的性能标尺与选型指南

ARM内核DMIPS/MHz详解:从Cortex-M到Cortex-A的性能标尺与选型指南

1. 项目缘起:为什么需要关注ARM内核的DMIPS/MHz在嵌入式开发、物联网设备选型,甚至是手机芯片的底层性能评估中,我们经常会听到“Cortex-M0”、“Cortex-M4”、“Cortex-A55”这些ARM内核的名字。对于很多工程师和产品经理来说,选…

2026/8/1 5:00:39 阅读更多 →
Android logcat Unexpected EOF 错误深度解析与系统性解决方案

Android logcat Unexpected EOF 错误深度解析与系统性解决方案

1. 项目概述:当logcat突然“失声”在Android开发与测试的日常里,adb logcat是我们最忠实、最常用的伙伴。它像一双透视眼,让我们能实时窥探设备内部应用的运行状态、系统事件以及那些令人头疼的Bug。然而,这双眼睛偶尔也会“失明”…

2026/8/1 5:00:39 阅读更多 →
Java字节码操作利器:ByteBuddy原理与实践

Java字节码操作利器:ByteBuddy原理与实践

1. 项目概述:当Java遇上字节码魔术师在Java开发者的武器库中,字节码操作工具一直扮演着"幕后英雄"的角色。而net.bytebuddy作为当前最活跃的字节码引擎之一,它能让你的Java程序在运行时像变魔术一样动态生成新类。想象一下&#xf…

2026/8/1 5:00:39 阅读更多 →
MIDAS GTS NX三维顶管管幕施工下穿桥梁模拟分析技术详解

MIDAS GTS NX三维顶管管幕施工下穿桥梁模拟分析技术详解

这次我们来看一个在岩土工程领域很实用的技术方案——MIDAS GTS NX三维顶管管幕施工下穿桥的模拟分析。对于需要在既有桥梁下方进行地下空间开发的工程项目来说,如何确保施工过程对桥梁结构安全不产生影响是个关键问题。顶管管幕工法作为一种非开挖施工技术&#xf…

2026/8/1 5:00:39 阅读更多 →
DLP投影仪核心技术解析:从DMD芯片到4K画质的选购与调校指南

DLP投影仪核心技术解析:从DMD芯片到4K画质的选购与调校指南

1. 项目概述:从“大玩具”到“生产力工具”的蜕变 几年前,当朋友第一次向我展示他用投影仪在卧室墙上打出的百寸游戏画面时,我的第一反应是“这玩意儿不就是个高级点的玩具吗?”。画面泛白、色彩寡淡,白天基本没法看&a…

2026/8/1 4:59:39 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →