LeetCode 144. Binary Tree Preorder Traversal 二叉树的前序遍历 C++
2024-10-21 18:35:40
Given a binary tree, return the preorder traversal of its nodes' values.
Example:
Input: [,null,,] \ / Output: [,,]
Follow up: Recursive solution is trivial, could you do it iteratively?
方法一:使用迭代(C++)
vector<int> preorderTraversal(TreeNode* root) {
vector<int> res={};
if(!root)
return res;
stack<TreeNode*> s;
TreeNode* cur=root;
while(!s.empty()||cur){
while(cur){
res.push_back(cur->val);
s.push(cur);
cur=cur->left;
}
cur=s.top();
s.pop();
cur=cur->right;
}
return res;
}
方法二:使用递归,更简单,但是效率较低
void preOrder(TreeNode* root,vector<int>& m){
if(!root)
return;
m.push_back(root->val);
preOrder(root->left,m);
preOrder(root->right,m);
} vector<int> preorderTraversal(TreeNode* root) {
vector<int> res={};
if(!root)
return res;
preOrder(root,res);
return res;
}
最新文章
- Windows Live Writer 在线安装失败的解决方法。
- C/C++内存分配
- 【Python】Celery异步处理
- Oracle 创建/删除 表空间、用户、授权
- session的使用方法
- Java JDBC下执行SQL的不同方式、参数化预编译防御
- 在centos 6.5 在virtual box 上 安装增强版工具
- 加密解密(10)常见HASH算法:MD5(128bit),SHA1(160bit)
- jQuery树叶掉落特效代码
- POSIX字符类型
- 使用Runtime.getRuntime().exec()方法的几个陷阱 (转)
- bzoj 1799: [Ahoi2009]self 类似的分布 解读
- android studio 中的 gradle version
- java 局部变量几点笔记
- [BJOI2017]开车
- TCP/IP 笔记 - 防火墙和网络地址转换
- 从零开始学习html(八)CSS选择器——上
- 一个小工具 TcpTextListener
- unity--------prefab嵌套prefab
- Python 使用CPickle和pickle模块进行序列化和反序列化
热门文章
- sql sever 2012重装数据库时,出现cannot find one or more components, Please reinstall the application.解决方法
- 《DSP using MATLAB》Problem 7.14
- JavaScript杂谈(第六天)
- Git学习之第一次使用PR
- 游戏编程模式 Game Programming Patterns (Robert Nystrom 著)
- rust
- python selenium-webdriver 下拉菜单处理 (九)
- shibie
- (转)初学Git及简单搭建git服务器和客户端
- Python中实用却不常见的小技巧