Binary Tree Preorder Traversal
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?
分析:
非递归先序遍历二叉树。用栈。
代码:
# 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 preorderTraversal(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
st = []
res = []
p = root
while p:
res.append(p.val)
if p.right:
st.append(p.right)
if p.left:
st.append(p.left)
if st:
p = st.pop()
else:
break
return res

本文介绍了如何使用栈实现非递归先序遍历二叉树,提供了一段Python代码实例。
5461

被折叠的 条评论
为什么被折叠?



