怎么使用二叉树
发表于:2024-10-12 作者:千家信息网编辑
千家信息网最后更新 2024年10月12日,这篇文章主要介绍"怎么使用二叉树",在日常操作中,相信很多人在怎么使用二叉树问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么使用二叉树"的疑惑有所帮助!接下来,请跟着
千家信息网最后更新 2024年10月12日怎么使用二叉树
这篇文章主要介绍"怎么使用二叉树",在日常操作中,相信很多人在怎么使用二叉树问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么使用二叉树"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
「以下以前序遍历为例:」
「确定递归函数的参数和返回值」:因为要打印出前序遍历节点的数值,所以参数里需要传入vector在放节点的数值,除了这一点就不需要在处理什么数据了也不需要有返回值,所以递归函数返回类型就是void,代码如下:
void traversal(TreeNode* cur, vector& vec)
「确定终止条件」:在递归的过程中,如何算是递归结束了呢,当然是当前遍历的节点是空了,那么本层递归就要要结束了,所以如果当前遍历的这个节点是空,就直接return,代码如下:
if (cur == NULL) return;
「确定单层递归的逻辑」:前序遍历是中左右的循序,所以在单层递归的逻辑,是要先取中节点的数值,代码如下:
vec.push_back(cur->val); // 中 traversal(cur->left, vec); // 左 traversal(cur->right, vec); // 右
单层递归的逻辑就是按照中左右的顺序来处理的,这样二叉树的前序遍历,基本就写完了,在看一下完整代码:
前序遍历:
class Solution { public: void traversal(TreeNode* cur, vector& vec) { if (cur == NULL) return; vec.push_back(cur->val); // 中 traversal(cur->left, vec); // 左 traversal(cur->right, vec); // 右 } vector preorderTraversal(TreeNode* root) { vector result; traversal(root, result); return result; } };
那么前序遍历写出来之后,中序和后序遍历就不难理解了,代码如下:
中序遍历:
void traversal(TreeNode* cur, vector& vec) { if (cur == NULL) return; traversal(cur->left, vec); // 左 vec.push_back(cur->val); // 中 traversal(cur->right, vec); // 右 }
后序遍历:
void traversal(TreeNode* cur, vector& vec) { if (cur == NULL) return; traversal(cur->left, vec); // 左 traversal(cur->right, vec); // 右 vec.push_back(cur->val); // 中 }
此时大家可以做一做leetcode上三道题目,分别是:
144.二叉树的前序遍历
145.二叉树的后序遍历
94.二叉树的中序遍历
到此,关于"怎么使用二叉树"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
递归
代码
节点
学习
单层
数值
逻辑
中左
函数
参数
就是
更多
处理
帮助
实用
接下来
完了
数据
文章
方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
max文件如何使用服务器渲染
qt用什么软件开发
关于网络安全继续教育
北京回收服务器主板
二代测序会有一些无效数据库
网络安全有关的法律规定
厦门湖里做小程序软件开发
网络技术专业方向有哪些
李沧区智科航网络技术服务中心
指纹考勤机怎么导数据库
网络安全法律体系行政法规
悟空辅助数据库更新失败怎么办
网络安全法统筹协调安全
服务器定时触发技巧
辽宁软件开发服务有哪些
台州品牌网络技术怎么样
软件开发ppt讲解
面试网络安全防护
红包外挂软件开发公司
网络安全发言稿手写400字
零号任务服务器维护到什么时候
厦门湖里做小程序软件开发
服务器bios如何修改硬盘状态
江苏海航软件开发优势
佛山的科技公司互联网公司
网络安全和信息化局职责
软件开发公司财务管理制度
路线导航软件开发
sga 服务器
数据库技术及应用编程