[leetcode] 144. Binary Tree Preorder Traversal
来源:互联网 发布:oauth2.0 java 服务端 编辑:程序博客网 时间:2024/06/06 07:52
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?
解法一:
不管怎么样,recursive的方法最容易想到。
/** * 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> res; if(!root) return res; traveral(root,res); return res; } void traveral(TreeNode* root, vector<int> &n){ n.push_back(root->val); if(root->left) traveral(root->left,n); if(root->right) traveral(root->right,n); }};
解法二:
考虑是stack来辅助,储存root, right, left。如果left一直不为空,则一直先处理left。
/** * 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> res; if(!root) return res; stack<TreeNode*> q; q.push(root); while(!q.empty()){ TreeNode* node = q.top(); res.push_back(node->val); q.pop(); if(node->right) q.push(node->right); if(node->left) q.push(node->left); } return res; }};
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
- spring mvc注解代码实例教程
- easyui datagrid 分页详解
- POJ 2546 Circular Area(计算几何 两圆相交面积)
- python Import 学习笔记
- SGU 180 Inversions (树状数组+离散化)
- [leetcode] 144. Binary Tree Preorder Traversal
- Android studio真机模拟调试
- java虚拟机-HotSpot的算法实现
- checkbox 全选
- R语言环境在Ubuntu下的安装
- viewpager切换动画
- Android学习历程--Launcher拖拽流程
- 在普通java类里获取Spring管理的bean
- tomcat内存溢出设置JAVA_OPTS