LeetCode - Binary Tree Preorder Traversal
来源:互联网 发布:新网域名自助管理平台 编辑:程序博客网 时间:2024/04/30 06:33
Binary Tree Preorder Traversal
Given a binary tree, return the preorder traversal of its nodes' values.
For example:
Given binary tree {1,#,2,3}
,
1 \ 2 / 3
return [1,2,3]
.
Note: Recursive solution is trivial, could you do it iteratively?
#include <iostream>#include <vector>#include <stack>using namespace std;struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution { public:vector<int> preorderTraversal(TreeNode *root) { if (!root)return vector<int>(); TreeNode *trace = root; vector<int> result; stack<TreeNode *> st; result.push_back(trace->val); bool leftFlag = true; while (trace) {if (trace->left && leftFlag) { st.push(trace); trace = trace->left; result.push_back(trace->val);}else if (trace->right) { trace = trace->right; result.push_back(trace->val);}else { if (st.empty()) {trace = NULL;continue; } trace = st.top(); st.pop(); leftFlag = false; continue;}leftFlag = true; } return result;}};int main(){ TreeNode *head = new TreeNode(1); TreeNode *node1 = new TreeNode(2); TreeNode *node2 = new TreeNode(3); head->right = node1; node1->left = node2; Solution * ss = new Solution(); vector<int> res = ss->preorderTraversal(head); for (int i = 0; i < res.size(); ++i) {cout << res[i] << endl; } return 0;}
0 0
- LeetCode Binary Tree Preorder Traversal
- 【LeetCode】Binary Tree Preorder Traversal
- Leetcode: Binary Tree Preorder Traversal
- Leetcode Binary Tree Preorder Traversal
- LeetCode:Binary Tree Preorder Traversal
- Leetcode: Binary Tree Preorder Traversal
- LeetCode:Binary Tree Preorder Traversal
- [LeetCode]Binary Tree Preorder Traversal
- [LeetCode] Binary Tree Preorder Traversal
- LeetCode | Binary Tree Preorder Traversal
- Leetcode: Binary Tree Preorder Traversal
- [LeetCode] Binary Tree Preorder Traversal
- LeetCode - Binary Tree Preorder Traversal
- LeetCode - Binary Tree Preorder Traversal
- 【LeetCode】Binary Tree Preorder Traversal
- [LeetCode]Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal - LeetCode
- [Leetcode] Binary Tree Preorder Traversal
- FastDFS接口API文档说明
- Android 文件系统的权限设置
- Sybase 的ODBC配置
- 九度oj 题目1209:最小邮票数
- MACHINE_START之分析
- LeetCode - Binary Tree Preorder Traversal
- mac下Cocos2d-x 3.0在xcode 和eclipse下得配置
- How to build the topology of an OSPF area
- 二、SQL语句映射文件(2)增删改查、参数、缓存
- Java泛型总结
- S3C2440 SDRAM驱动配置编程
- res/raw 和assets
- 为爱编程,专属于程序员的情人节赠书活动
- ubuntu下qt\qtcreator和opencv安装配置