二叉树的中序遍历- 二叉树基本-递归 - MKT

news/2025/10/21 21:30:51/文章来源:https://www.cnblogs.com/gooutlook/p/19156457

image

 

image

 

image

 

image

 

#include <iostream>
#include <queue>
using namespace std;struct TreeNode {int val;TreeNode* left;TreeNode* right;TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};// 创建二叉树
TreeNode* createBinaryTree() {TreeNode* root = new TreeNode(1);root->left = new TreeNode(2);root->right = new TreeNode(3);root->left->left = new TreeNode(4);root->left->right = new TreeNode(5);return root;
}// 前序遍历
void preorder(TreeNode* root) {if (root == nullptr) return;cout << root->val << " ";preorder(root->left);preorder(root->right);
}// 中序遍历
void inorder(TreeNode* root) {if (root == nullptr) return;inorder(root->left);cout << root->val << " ";inorder(root->right);
}// 后序遍历
void postorder(TreeNode* root) {if (root == nullptr) return;postorder(root->left);postorder(root->right);cout << root->val << " ";
}// 层次遍历
void levelOrder(TreeNode* root) {if (root == nullptr) return;queue<TreeNode*> q;q.push(root);while (!q.empty()) {TreeNode* current = q.front();q.pop();cout << current->val << " ";if (current->left != nullptr) q.push(current->left);if (current->right != nullptr) q.push(current->right);}
}// 计算树高
int height(TreeNode* root) {if (root == nullptr) return 0;return max(height(root->left), height(root->right)) + 1;
}// 计算节点数
int countNodes(TreeNode* root) {if (root == nullptr) return 0;return 1 + countNodes(root->left) + countNodes(root->right);
}int main() {TreeNode* root = createBinaryTree();cout << "前序遍历: ";preorder(root);cout << endl;cout << "中序遍历: ";inorder(root);cout << endl;cout << "后序遍历: ";postorder(root);cout << endl;cout << "层次遍历: ";levelOrder(root);cout << endl;cout << "树高: " << height(root) << endl;cout << "节点数: " << countNodes(root) << endl;return 0;
}

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/942676.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二叉树的中序遍历- 递归和栈 - MKT

二叉树的中序遍历- 递归和栈 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) …

构建YouTube视频总结摘要智能体

构建YouTube视频总结摘要智能体智能体 AI 平台 智能体 AI 框架是一个工具包,用于创建能够通过工具使用和记忆自主或半自主地推理、计划和采取行动的智能体系统。这些框架提供了创建能够与环境交互、做出决策和执行…

友链测试

// run new Vue({el: #app,data: {links: [{name: 捞月亮の小北,desc: 言念君子,温其如玉,avatar: https://youke1.picui.cn/s1/2025/10/21/68f785af89315.png,url: https://example.com},{name: Fomalhaut,desc: Fut…

English writing practice in diary.

Recent Situation Overview Currently everything around is horrible, but hopful(hopeful) too. Learning English for TOEFL, studying major ourse for upgradation(academic improvement) and devoting in web3 r…

以此文记我的国漫生活

原来我以前看过这么多动画片和动漫,来看看你看过哪些: 《喜羊羊与灰太狼》《熊出没》《猪猪侠》《猫和老鼠》《成龙历险记》《十二生肖闯江湖》《大头儿子和小头爸爸》《神兵小将》《舒克贝塔》《疯狂小糖》《葫芦娃…

做了一个概率小游戏,没想到服务器被打爆被攻击了!原因竟然是他?真没想到...

做了一个概率小游戏,没想到服务器被打爆被攻击了!原因竟然是他?真没想到。让我给大家讲讲我怎么和攻击者在线上斗智斗勇的。1. 前言 事情是这样的,上个月在刷知乎的过程中,发现了以下几个有趣的问题。《每毫秒给你…

接下来的目标

本学期目标: 1.学完redis黑马点评,掌握关于redis,分布式锁,秒杀等知识点 2.八股文在javaguide上观看一遍 3.算法题hot100刷第一遍 4.看完《深入理解jvm虚拟机》目前已看完历史即第一章,准备编译openjdk12; 5.写完…

敬启,致那时的我

题面 题目描述 实乃理给你两个整数 \(S, k\),你需要帮她求出以下式子的值对 \(1,000,000,007\) 取模的结果: \[\sum_{X = 0}^S [\mathrm{popc}(X) = k]F(X) \]其中 \(F\) 为斐波那契数列,即 \(F(0) = F(1) = 1, F(n…

阿里云对象存储OSS之Java - Soul

阿里云对象存储OSS 介绍阿里云对象存储OSS是一款非常强大的云存储服务——提供的海量、安全、低成本、高持久性的对象存储服务,通过RESTful API提供HTTP接口。 核心特性:无限扩展:存储空间和文件数量无上限。 多存储…

清楚标签默认样式,内容溢出盒子时的处理

所有标签都有默认样式 scroll:无论是否一处都显示水平和竖直的滚动条, auto:只有当水平或者竖直方向移出时才会显示

Solidity合约继承场景下的构造函数执行顺序

Solidity合约继承场景下的构造函数执行顺序“从远到近,从左到右” 举例,TetherToken有如下继承关系: TetherToken is Pausable, StandardToken, BlackList多重继承时,"从左到右",先初始化 Pausable,再…

后量子密码学技术与标准化进程解析

本文深入探讨后量子密码学技术发展现状,涵盖NIST标准化进程、密码算法创新及实际部署方案。重点分析SPHINCS+签名框架、混合密钥交换机制在TLS协议中的实现,以及云计算环境下的技术迁移路径。为后量子密码学未来做好…

用 大模型 和 Gradio 构建一个 AI 反向词典

卡在嘴边的词?用 MindSpore 和 Gradio 构建一个 AI 反向词典 你是否曾有过这样的经历:一个概念、一种情绪或一个场景在脑海中无比清晰,但就是想不起那个最贴切的词来形容它?这种“话在嘴边说不出”的窘境,是我们在…

1279. 红绿灯路口

1279. 红绿灯路口 题目描述这是两条路的交叉路口。第一条路是 A 路,车辆可沿 1 号方向由北向南行驶,也可沿 2 号方向由南向北行驶。第二条路是 B 路,车辆可沿 3 号方向由西向东行驶,也可沿 4 号方向由东向西行驶。…

反数字化:线下活动也能年赚百万

Jonathan Courtney在2025年靠线下高端小众活动赚了100万美元。以下是他实操过的11步清单👇1️⃣. 选定方向:反潮流,做"反AI反数字化",专注线下体验。1分钟就能决定,大胆出手,不卷线上。2️⃣. 明确细…

python概念详解

1.is和==有什么区别? 在 Python 中,is和都用于比较,但它们的比较对象和逻辑完全不同,核心区别在于:is比较的是 “对象身份”(是否为同一个对象),比较的是 “对象值”(是否相等)。is:比较的是两个对象的id值…

JAVA基础理解

1.封装 封装是面向对象的三大特征之一,意思为隐藏对象的属性和实现细节,Java中的封装就是根据访问控制修饰符实现的public(公共的):对外公开,所有类都可以访问 protected(受保护的): 只能在同一个包中的类或子…

用户消费行为数据分析(随笔)

需求分析(流程) 1、数据收集 项目的第一步是收集大量的用户消费数据。 2、数据清洗与预处理 收集到的数据可能存在错误、缺失或重复项,需要进行数据清洗和预处理,确保数据的准确性和完整性,使其适合后续的工作。 …

sqlserver 主要的日期函数及用法示例

SQL Server 主要日期函数及用法示例 1. 获取当前日期和时间sqlSELECT GETDATE() AS CurrentDateTime, -- 当前日期时间GETUTCDATE() AS CurrentUTCDateTime, -- 当前UTC时间SYSDATETIME() AS SystemDate…

ICPC2022沈阳 游记(VP)

中期艰难挂机,最后勉强四题仅有铜中。省流 中期艰难挂机,最后勉强四题仅有铜中。10.21 内含剧透,请vp后再来。 不是题解!!!!!!! 赛前 点外卖没给一次性筷子,飞奔到食堂获取圣遗物然后 \(4min22s\) 速通结块…