题目描述
给定一个二叉树,返回所有从根节点到叶子节点的路径。
- 说明
叶子节点是指没有子节点的节点。
- 示例
输入: [1,2,3,null,5]
输出: ["1->2->5", "1->3"]
解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3
非递归形式的先序遍历
使用栈进行先序遍历,栈中的元素是当前结点与其对应的路径字符串构成的元组。
def binaryTreePaths(self, root):
if not root:
return []
leaf_node_path, path_stack = [], [(root, "")]
while path_stack:
node, cur = path_stack.pop()
if not node.left and not node.right:
leaf_node_path.append(cur + str(node.val))
if node.left:
path_stack.append((node.left, cur + str(node.val) + "->"))
if node.right:
path_stack.append((node.right, cur + str(node.val) + "->"))
return leaf_node_path
(最近更新:2019年04月16日)