leetcode 94 中序遍历模板
2024-08-30 06:17:53
/**递归的写法
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
void MiddleTravel(TreeNode * root,vector<int>&result_vec) {
if(root!=NULL) {
MiddleTravel(root->left,result_vec);
result_vec.push_back(root->val);
MiddleTravel(root->right,result_vec);
}
}
class Solution {
public:
vector<int> inorderTraversal(TreeNode* root) {
vector<int>result_vec;
MiddleTravel(root,result_vec);
return result_vec;
}
};
下面是一个不用递归的写法,用栈:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
vector<int> inorderTraversal(TreeNode* root) {
vector<int>result_vec;
stack<TreeNode *>q_stack;
TreeNode *NowNode=root;
while(NowNode||!q_stack.empty()) {
if(NowNode!=NULL) {
q_stack.push(NowNode);
NowNode=NowNode->left;
}
else {
NowNode=q_stack.top();
result_vec.push_back(NowNode->val);
q_stack.pop();
NowNode=NowNode->right;
}
}
return result_vec;
}
};
最新文章
- Web页面报错: Eval()、XPath() 和 Bind() 这类数据绑定方法只能在上下文中使用
- P1311 选择客栈
- <;input type=";file";>;中怎设置那个按钮的样式
- TYVJ1038 忠诚
- 网页自适应@media
- SecureCRT从本传相片到服务器的注意事项
- Understanding Convolutions【转】
- 切换Oracle数据库实例
- 实现自己的脚本语言ngscript之一:词法分析
- DataGrid( 数据表格) 组件[7]
- 驱动:中断【2】中断处理程序、中断上下文中处理延时及一些函数的调用规则(调IIC中断驱动有感)
- Online Procurement Auctions for Resource Pooling in Client-Assisted Cloud Storage Systems---INFOCOM 2015
- net view 提示6118错误 解决方法。
- Docker: 企业级镜像仓库Harbor部署(http)
- RxSwift 操作符
- Kotlin入门(14)继承的那些事儿
- Mongodb集群——master/slave
- e798. 显示JSlider的标记标签
- Python接通图灵机器人
- ORACLE11G 字符集更改(这里更改为AL32UTF8)
热门文章
- 使用 Azure 创建存储和检索文件
- 解决在安装Fiddler4.6版本后,在手机上安装证书出现的问题解决方法
- LINUX提高openfire并发数(网上收集)
- bsub &;&; lsf 介绍
- ubuntu16 安装elasticsearch6.3问题
- 如何在ABAP里用函数式编程思想打印出非波拉契Fibonacci(数列)
- UVa 12219 Common Subexpression Elimination (stl,模拟,实现)
- 贴一发STL源码
- 47.Number of Islands(岛的数量)
- PHP开发中涉及到emoji表情的几种处理方法!