257-binary-tree-paths
257-binary-tree-paths
Given the root of a binary tree, return all root-to-leaf paths in any order.
A leaf is a node with no children.
Example 1:
Input: root = [1,2,3,null,5] Output: [“1->2->5”,”1->3”] Example 2:
Input: root = [1] Output: [“1”]
Recursion
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):
def binaryTreePaths(self, root):
"""
:type root: Optional[TreeNode]
:rtype: List[str]
"""
path = str(root.val)
res = []
self.getPaths(root,res,path)
return res
def getPaths(self,root,res,path):
if not root.left and not root.right:
res.append(path)
return
if root.left:
pathLeft = path + '->' + str(root.left.val)
self.getPaths(root.left,res,pathLeft)
if root.right:
pathRight = path + '->' + str(root.right.val)
self.getPaths(root.right,res,pathRight)
本文由作者按照 CC BY 4.0 进行授权