Binary Tree Preorder Traversal
来源:互联网 发布:纽昂司软件成都分公司 编辑:程序博客网 时间:2024/06/09 22:26
非递归用栈实现先序遍历
#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) {}};stack<TreeNode*> st;class Solution {public: vector<int> preorderTraversal(TreeNode *root) { vector<int> v; TreeNode *p; while(root || !st.empty()) { while(root) { v.push_back(root->val); st.push(root); root = root->left; } if(!st.empty()) { root = st.top();st.pop(); } root = root->right; } return v; }};int main(void){Solution s;/*TreeNode *root = new TreeNode(1);TreeNode *node1 = new TreeNode(2); root->right = node1;TreeNode *node2 = new TreeNode(3); node1->left = node2;*//*TreeNode *root = new TreeNode(1);TreeNode *node1 = new TreeNode(4); root->left = node1;TreeNode *node2 = new TreeNode(3); root->right = node2;TreeNode *node3 = new TreeNode(2); node1->left = node3;*//*TreeNode *root = new TreeNode(3);TreeNode *node2 = new TreeNode(1); root->right = node2;TreeNode *node3 = new TreeNode(2); node2->left = node3;*/TreeNode *root = new TreeNode(2);TreeNode *node1 = new TreeNode(1); root->left = node1;TreeNode *node2 = new TreeNode(3); root->right = node2;TreeNode *node3 = new TreeNode(4); node1->right = node3;vector<int> re = s.preorderTraversal(root);vector<int>::iterator iter;for(iter = re.begin(); iter != re.end(); ++iter){cout << *iter << endl;}return 0;}
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
- Baoge的字符串[浅蓝]——想法题
- __builtin_constant_p
- 电话的话好贵h
- ORACLE常用系统查询
- Java集合源码学习(3)_Collection接口的基础实现AbstractCollection
- Binary Tree Preorder Traversal
- 乐其远程笔试题
- SD卡的几个基本概念
- android 样式style的设置
- hdu1850(心得)
- libgdx Logging (日志)
- POJ-3414-两个杯子倒水问题(宽搜+回溯)
- css base 重置样式
- poj 3177&&poj 3352加边构双联通(有重边)用tarjan 模板求的