[LeetCode]题解(python):145-Binary Tree Postorder Traversal
2016-05-10 13:52
656 查看
[b]题目来源:[/b]
https://leetcode.com/problems/binary-tree-postorder-traversal/
[b]题意分析:[/b]
后序遍历一棵树,递归的方法很简单,尝试用非递归的方法。
[b]题目思路:[/b]
后序遍历的顺序是,先左子树,再右子树,最后才是根节点。递归的思想很简单,那么非递归的方法也是利用栈来实现,后进先出,不过这里先进的应该是左子树,那么得到的结果是根节点,右子树接着左子树。最后将结果翻转就可以了。代码给的是非递归的方法。
[b]代码(python):[/b]
View Code
https://leetcode.com/problems/binary-tree-postorder-traversal/
[b]题意分析:[/b]
后序遍历一棵树,递归的方法很简单,尝试用非递归的方法。
[b]题目思路:[/b]
后序遍历的顺序是,先左子树,再右子树,最后才是根节点。递归的思想很简单,那么非递归的方法也是利用栈来实现,后进先出,不过这里先进的应该是左子树,那么得到的结果是根节点,右子树接着左子树。最后将结果翻转就可以了。代码给的是非递归的方法。
[b]代码(python):[/b]
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): def postorderTraversal(self, root): """ :type root: TreeNode :rtype: List[int] """ ans = [] if root == None: return ans stack = [root] while len(stack) != 0: p = stack.pop() ans.append(p.val) if p.left: stack.append(p.left) if p.right: stack.append(p.right) ans.reverse() return ans
View Code
相关文章推荐
- Python 学习笔记9(装饰器,decorator)
- [LeetCode]题解(python):144-Binary Tree Preorder Traversal
- python 获取局域网内的广播地址
- python 建立ssh连接 并登陆mysql
- Python学习笔记:字典(dict)有关内容
- python的优点
- ubuntu12.04安装python3.5及pip3和setuptools
- python文件读写操作
- python main函数中变量默认为global variable & SIGKILL SIGSTOP 无法捕获
- Python Built-in Funcitons
- 人人影视自动签到Python脚本
- python+opencv实现霍夫变换检测直线
- 文件拷贝
- python中关键词with的使用
- Python string reverse
- python socket 检测服务器端口
- python使用嵌套序列
- python daemon 守护进程对信号的处理
- Python 自定义信号处理
- Python的信号处理与程序退出