Binary Tree Preorder Traversal
来源:互联网 发布:三杰烧录软件视频教程 编辑:程序博客网 时间:2024/06/10 19:56
问题描述:
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?
C++:非递归实现,不过超时了。
/** * 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) { vector<int> pretr; if(root == NULL) return pretr; stack<TreeNode *> node; node.push(root); while(!node.empty()){ TreeNode *p = node.top(); pretr.push_back(p->val); node.pop(); if(p->right) node.push(p); if(p->left) node.push(p); } return pretr; }};
C++递归实现
/** * 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) { vector<int> pretr; process(root,pretr); return pretr; } void process(TreeNode *root,vector<int> &pretr){ if(root == NULL) return; TreeNode *p; p = root; pretr.push_back(p->val); process(p->left,pretr); process(p->right,pretr); }};python:
# Definition for a binary tree node# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: # @param root, a tree node # @return a list of integers def preorderTraversal(self, root): pretr = [] self.process(root,pretr) return pretr def process(self,root,ls): if(root == None): return; ls.append(root.val) self.process(root.left,ls) self.process(root.right,ls)
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
- Lightmapping In-Depth[Unity]
- java面试算法笔记
- 充电宝被曝可窃取用户数据:边充电边拷贝
- file命令的移植
- hdu-1195
- Binary Tree Preorder Traversal
- Android笔记 android中viewpager,scrollview的嵌套问题
- [网络]NIO学习笔记
- ORACLE 查看隐含参数脚本
- Win10技术预览版的全新搜索体验 新增搜索app功能
- MyEclipse插件 fat-jar的安装和使用
- Windows 平台下Myeclipse 10 中SVN 插件使用教程(TortoiseSVN)
- matlab中的unique函数
- 查看linux进程的确切启动时间 .