if there is no child, then append itself to the list
else add current root.val to every element in the returned list
Code
# 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]
"""
def dfs(root):
if not root: return []
left = dfs(root.left)
right = dfs(root.right)
merge = []
merge.extend(left)
merge.extend(right)
ans = []
if not merge:
ans.append(str(root.val))
else:
for s in merge:
ans.append("{}->{}".format(root.val,s))
return ans
return dfs(root)