LeetCode Binary Tree Preorder Traversal
来源:互联网 发布:金山数据浏览小精灵 编辑:程序博客网 时间:2024/06/04 23:31
LeetCode解题之Binary Tree Preorder Traversal
原题
采用非递归的方法进行二叉树的前序遍历。
注意点:
- 无
例子:
输入:
1 \ 2 / 3
输出: [1,2,3]
解题思路
二叉树进行前序遍历时,首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。可以看出采用递归的方法非常简单,如果不用递归,我们可以通过一个栈来辅助遍历。在先序遍历中,访问完根节点,我们接着遍历它的左子树,它的右子树要等左子树遍历完成后再遍历,所以我们先把它存起来。而左子树的头节点(区别于根节点)也会有它的右子树,这棵右子树需要比之前的右子树先遍历(因为它是根节点的左子树中的),所以存储采用栈的结构。当遍历到某一个节点没有左子树后,我们从栈中取出右子树节点继续遍历,直到遍历完整棵树。
AC源码
# Definition for a binary tree node.class TreeNode(object): def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution(object): def preorderTraversal(self, root): """ :type root: TreeNode :rtype: List[int] """ stack = [] result = [] while root or stack: if not root: root = stack.pop() result.append(root.val) if root.right: stack.append(root.right) root = root.left return resultif __name__ == "__main__": None
欢迎查看我的Github (https://github.com/gavinfish/LeetCode-Python) 来获得相关源码。
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
- 亿级Web系统搭建——单机到分布式集群
- FZU 2086 Redcarnation
- 遇到问题不会的时候就记下来,因为还有下次。
- hdu2845 Beans(DP)
- Qt 打包应用程序方法
- LeetCode Binary Tree Preorder Traversal
- 108_ViewHolder抽取
- 控制服务和守护进程
- 红黑树节点的删除操作
- 第一章 JAVA入门(Eclipse简介)
- 2016"百度之星" - 测试赛(热身,陈题)&& 列变位法解密&&IP聚合&&放盘子
- HDU 1251:统计难题
- httpSession的正确理解
- 第一章 JAVA入门(Eclipse续集)