Binary Tree Preorder Traversal
来源:互联网 发布:淘宝开店书籍 编辑:程序博客网 时间:2024/06/14 14:42
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]
.
/** * 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> preorderTraversal(TreeNode* root) { vector<int> vec; if(root == NULL) { return vec; } stack<TreeNode*> st; TreeNode *tmp = root; st.push(tmp); vec.push_back(tmp -> val); while(!st.empty()) { if(tmp -> left == NULL && tmp -> right == NULL) { st.pop(); if(st.empty()) { break; } } tmp = st.top(); if(tmp -> left != NULL) { TreeNode *t = tmp; tmp = tmp -> left; vec.push_back(tmp -> val); st.push(tmp); t -> left = NULL; continue; } // if(st.empty()) // { // break; // } tmp = st.top(); if(tmp -> right != NULL) { TreeNode *t = tmp; tmp = tmp -> right; vec.push_back(tmp -> val); st.push(tmp); t -> right = NULL; continue; } } return 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> preorderTraversal(TreeNode* root) { vector<int> ivec; if(root == NULL) { return ivec; } stack<TreeNode*> st; st.push(root); while(!st.empty()) { TreeNode* tmp = st.top(); ivec.push_back(tmp -> val); st.pop(); if(tmp -> right != NULL) { st.push(tmp -> right); } if(tmp -> left != NULL) { st.push(tmp -> left); } } return ivec; }};
0 0
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal
- JAVA _IO流(1)
- hihocoder 1142 三分·三分求极值
- PowerDesigner使用教程
- UVALive 4171 Bulletin Board
- Android 非空格式验证框架的使用,验证邮箱,非空,2选1等等
- Binary Tree Preorder Traversal
- 在PHP中定义常量时,const与define的区别
- LeetCode 16 3Sum Closest
- poj2421kruskal算法模板题
- 第二步开始:计算几何 数论
- 程序员如何开始你的 SOHO 之旅 (1)
- Median of Two Sorted Arrays
- Cocos2d-x 3.7学习笔记之Windows平台下新建项目,并用Visual Studio2013编辑
- jsoup抓取网页+详细讲解