尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
2026—10-27
递归三部曲1.确定递归函数的参数和返回值2.确定终止条件3.确定单层递归的逻辑例中序遍历void oreTraversal(TreeNode* cur,vectorint v){if(curnullptr){return;}oreTraversal(cur-left,v);v.push_back(cur-val);oreTraversal(cur-right,v);}层序遍历二叉树核心思想为用栈来作为中介用size作为每次输出的元素个数来控制输出#include bits/stdc.h using namespace std; struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode():val(0),left(nullptr),right(nullptr){ } TreeNode(int x):val(x),left(nullptr),right(nullptr){ } }; vectorint fun(TreeNode* root){ queueTreeNode* que; vectorint res; TreeNode* node; if(root!nullptr){ que.push(root); } while(!que.empty()){ int sizeque.size(); while(size--){ nodeque.front(); res.push_back(node-val); que.pop(); if(node-left!nullptr){ que.push(node-left); } if(node-right!nullptr){ que.push(node-right); } } } return res; } int main(){ TreeNode* nodenew TreeNode(6); node-leftnew TreeNode(4); node-rightnew TreeNode(7); node-left-leftnew TreeNode(1); node-left-rightnew TreeNode(3); node-right-leftnew TreeNode(5); node-right-rightnew TreeNode(8); vectorint resfun(node); for(int x:res){ coutx ; } }从中序与后序遍历序列构造二叉树class Solution { public: TreeNode* buildTree(vectorint inorder, vectorint postorder) { if(postorder.size()0){ return nullptr; } TreeNode* rootnew TreeNode(postorder[postorder.size()-1]);//1.找根节点:根节点为后序遍历最后的元素 int index; if(postorder.size()1){ return root; } for(index0;indexinorder.size();index){ if(inorder[index]root-val){ break;//2.找出根节点在中序数组中的位置:在中序数组中找到根节点对应的下标那么之后可以分出来根节点左边和右边的元素 } } vectorint newinorderleft(inorder.begin(),inorder.begin()index);//左中序数组 index也表示“左”元素个数 //括号里面的 inorder.begin() 和 inorder.begin() index 代表的是两个迭代器Iterators它们定义了一个左闭右开的区间 [begin, end) //end()指向最后一个元素的下一个位置 vectorint newinorderright(inorder.begin()index1,inorder.end());//右中序数组 postorder.resize(postorder.size()-1);//便于有后序数组范围定义 vectorint newpostorderleft(postorder.begin(),postorder.begin()newinorderleft.size());//左后序数组 vectorint newpostorderright(postorder.begin()newinorderleft.size(),postorder.end());//右后序数组 root-leftbuildTree(newinorderleft,newpostorderleft); root-rightbuildTree(newinorderright,newpostorderright); return root; } };从前序与中序遍历序列构造二叉树class Solution { public: TreeNode* buildTree(vectorint preorder, vectorint inorder) { if(inorder.size()0){ return nullptr; } TreeNode* rootnew TreeNode(preorder[0]); int index; for(index0;indexinorder.size();index){ if(inorder[index]root-val){ break; } } vectorint newInorderLeft(inorder.begin(),inorder.begin()index); vectorint newInorderRight(inorder.begin()index1,inorder.end()); vectorint newPreorderLeft(preorder.begin()1,preorder.begin()1newInorderLeft.size()); vectorint newPreorderRight(preorder.begin()1newInorderLeft.size(),preorder.end()); root-leftbuildTree(newPreorderLeft,newInorderLeft); root-rightbuildTree(newPreorderRight,newInorderRight); return root; } };
RELATED

相关推荐

OpenClaw 龙虾ai 实操手册,从零搭建电脑自动执行智能体

OpenClaw 龙虾ai 实操手册,从零搭建电脑自动执行智能体

📖 前言 本文面向 Windows 系统用户,系统梳理 OpenClaw 的标准化部署流程。全程无需输入任何命令行,所有操作均依托可视化向导完成,即便是零基础用户也能独立走完整套部署。文中同时汇总了高频报错的对应解决方案,力求…

📅 2026/10/28 10:10:57
I2C/SPI 仿真:PGY-I2C/SPI-EX-PD 使用教程

I2C/SPI 仿真:PGY-I2C/SPI-EX-PD 使用教程

I2C/SPI 仿真:PGY-I2C/SPI-EX-PD 使用教程 目录 1. 简述 2. 环境配置 3. 设备基本介绍 3.1. 前面板与状态指示灯 4. 软件功能基本介绍 4.1. 基本框架示意图 4.2. 基本功能说明 4.2.1. Toolbar(工具栏) 4.2.2. Setup View(设置视图) 4.2.3. Plot View(波形视图…

📅 2026/10/28 10:10:57
中小批量 PCB 打样 + 量产一体化,这几个选厂标准一定要记牢-ZXHPCB

中小批量 PCB 打样 + 量产一体化,这几个选厂标准一定要记牢-ZXHPCB

做硬件的朋友都懂这个痛:打样随便找家快厂,板子试通了;等要批量做换了厂,材料、工艺参数全对不上,之前调了半天的阻抗和信号完整性得重来,小半个月就没了。所以现在越来越多人直接打样阶段就把量产厂一起定…

📅 2026/10/28 10:10:57
MORE NEWS

更多资讯

📰

连接追踪技术原理与性能优化实践

1. 连接追踪技术概述连接追踪(Connection Tracking)是现代网络系统中实现状态感知的核心机制。不同于传统的无状态数据包处理,连接追踪通过维护连接状态表,使系统能够识别和处理属于同一通信会话的数据包序列。这项技术广泛应用于…

📰

连接追踪技术解析:原理、优化与实战案例

1. 连接追踪技术概述连接追踪(Connection Tracking)是现代网络系统中实现状态感知的核心机制。简单来说,它就像网络通信的"记忆系统",能够识别、记录和管理网络连接的状态变化。这项技术最早出现在防火墙系统中&#xf…

📰

AI工程师转型大模型:技术栈迁移与实战指南

1. AI程序员转型大模型的底层逻辑作为经历过完整技术转型周期的从业者,我深刻理解AI工程师面对大模型浪潮时的焦虑与机遇。2023年大模型技术栈的爆发式增长,让传统AI工程师的技能图谱面临重构。但有趣的是,经过半年实战验证,我发现…

📰

大数据预测模型性能评估:挑战与实践

1. 大数据预测分析模型性能评估的核心挑战在大数据时代,预测分析模型已成为企业决策的重要支撑工具。但面对TB级甚至PB级的数据量、复杂的业务场景和瞬息万变的市场环境,如何准确评估模型性能成为数据科学家面临的首要难题。传统的小规模数据集评估方法在…

📰

Cordys CRM Skills技能套件:智能化客户关系管理新突破

1. Cordys CRM Skills技能发布概述今天要跟大家分享一个企业服务领域的重磅更新——Cordys CRM Skills技能套件正式发布。作为在CRM领域深耕多年的从业者,我第一时间拿到了这套工具的测试权限,经过两周的深度体验,可以负责任地说:…

📰

impeccable:AI编码代理的前端设计质量增强层实战指南

1. 项目缘起与核心定位1.1 一个被名字耽误的实用工具第一次看到 "impeccable" 这个词,很多人会愣一下——这到底是个什么项目?名字取得太文艺了,不像常规技术工具那种直白的命名风格。但恰恰是这个略带"端着"的名字&…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬