[LeetCode] Binary Tree Preorder Traversal
来源:互联网 发布:淘宝店铺怎么起名字 编辑:程序博客网 时间:2024/05/16 08:14
问题:
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?
分析:递归算法就不说了,比较简单。很多binary tree的问题都可以用递归细想解决。同样地,很多binary tree的问题当需要把递归转化为非递归,那往往会用到stack或者queue等数据结构。这道题可以用stack来解决。preorder的意思就是先parent,后children。
代码:
class Solution {public: vector<int> preorderTraversal(TreeNode *root) {vector<int> result;if (!root) return result;std::stack<TreeNode*> qu;qu.push(root);while (!qu.empty()) {TreeNode * current = qu.top();qu.pop();result.push_back(current->val);if (current->right) qu.push(current->right);if (current->left) qu.push(current->left);}return result; }};
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
- oracle 触发器更新基表不同记录所产生的问题
- ListView
- MySQL与PostgreSQL:该选择哪个开源数据库?哪一个更好?
- Listview 2
- Object C 入门基础
- [LeetCode] Binary Tree Preorder Traversal
- c++直接插入排序
- Linux 的基本系统数据类型
- shell排序
- 直接选择排序
- 刷个openwrt,并加入改写的802.1X认证客户端(iNode认证)
- 堆排序
- 冒泡排序
- 快速排序