Binary Tree Preorder Traversal
来源:互联网 发布:网络监控布线 编辑:程序博客网 时间:2024/06/01 11:28
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 binary tree * 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) { if(root){values.push_back(root->val);preorderTraversal(root->left);preorderTraversal(root->right); return values; }else{ return values; } }private:vector<int> values;};
非递归:
/** * Definition for binary tree * 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) { stack <TreeNode *> paths;while(root || !paths.empty()){while(root){values.push_back(root->val);paths.push(root);root = root->left;}if(!paths.empty()){TreeNode *p=paths.top();paths.pop();root = p->right;}}return values; }private:vector<int> values;};
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类更改常量后编译不生效
- 关于在web情况下访问C#客户端,导致C#客户端无法访问网络映射盘问题
- Java数据类型与JNI数据类型转换
- mysql加载驱动
- servlet过滤器
- Binary Tree Preorder Traversal
- 为什么要使用Python?
- ipcs 和 ipcrm 命令
- 视频聊天软件的技术实现
- UVa 11389 - The Bus Driver Problem
- CShell
- 关于通过vmware安装windows8的几个问题及解决--无人参与应答文件包含的产品密钥无效
- 用profiler工具对android ndk程序进行性能分析
- JSP中文乱码问题终极解决方案