Given a binary tree, return all root-to-leaf paths.
For example, given the following binary tree:
1 / \ 2 3 \ 5
All root-to-leaf paths are:
["1->2->5", "1->3"]
关键词:二叉树,节点类型
时间自由度:O(nlog2(n))
# 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 binaryTreePaths(self, root):
"""
:type root: TreeNode
:rtype: List[str]
"""
if not root:return []
self.result = []
self.path(root,str(root.val))
return self.result
def path(self,node,s):
if not (node.right or node.left):self.result.append(s)
print self.result
if node.left:self.path(node.left,s+'->'+str(node.left.val))
print self.result
if node.right:self.path(node.right,s+'->'+str(node.right.val))
print self.result