【LeetCode】144. Binary Tree Preorder Traversal
来源:互联网 发布:电脑模拟装机软件 编辑:程序博客网 时间:2024/05/22 03:53
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?
解题思路:
虽然是medium但是是基础题了,毕竟是二叉树的遍历。
不用递归的办法就是使用堆栈。
根节点入栈
用指针不断沿着树的左孩子方向走,并且途经的孩子就入栈
直到左孩子为空。
这时候我们就可以从栈顶取出一个结点,退栈转右。
重复以上的过程直到栈为空。
如果是中序和前序的区别只在于访问节点在转右时访问还是在入栈时访问。
class Solution {public: vector<int> preorderTraversal(TreeNode* root) { stack<TreeNode*> nodeStack; vector<int> result; TreeNode* p=root; while(p!=NULL || !nodeStack.empty()){ if(p!=NULL){ nodeStack.push(p); result.push_back(p->val); p=p->left; }else{ p=nodeStack.top(); nodeStack.pop(); p=p->right; } } return result; }};
当然, 我发现这个答案的云运行速度比较慢。只打败了8%的人。。。
慢慢寻找原因啦
0 0
- [LeetCode]144.Binary Tree Preorder Traversal
- LeetCode 144. Binary Tree Preorder Traversal
- [leetcode] 144.Binary Tree Preorder Traversal
- 【LeetCode】144. Binary Tree Preorder Traversal
- 144. Binary Tree Preorder Traversal LeetCode
- LeetCode 144. Binary Tree Preorder Traversal
- [LeetCode]144. Binary Tree Preorder Traversal
- 【LeetCode】144. Binary Tree Preorder Traversal
- leetcode:144. Binary Tree Preorder Traversal
- leetcode 144. Binary Tree Preorder Traversal
- [LeetCode OJ]144.Binary Tree Preorder Traversal
- LeetCode *** 144. Binary Tree Preorder Traversal
- LeetCode 144. Binary Tree Preorder Traversal
- LeetCode-144.Binary Tree Preorder Traversal
- LeetCode 144. Binary Tree Preorder Traversal
- leetcode 144. Binary Tree Preorder Traversal
- leetcode 144. Binary Tree Preorder Traversal
- [leetcode] 144. Binary Tree Preorder Traversal
- Linux cat命令的使用案例
- 04python_senior
- 图片垂直居中
- poj3358
- JVM_Bind问题的解决方案
- 【LeetCode】144. Binary Tree Preorder Traversal
- 多线程还是多进程的区别
- Git *** Please tell me who you are.
- 电话号码的写法
- 理解“红黑树”
- XP系统缺少msxml4.dll文件,应该放在哪里?
- openstack报错解决一
- Gitosis + repo 搭建安卓源码开发环境
- 文件系统