题目:
Given the root of a binary tree, return all root-to-leaf paths in any order.
给定一棵binary tree,回传所有root-to-leaf路径
老样子用递迴来实作的树题
# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def binaryTreePaths(self, root: Optional[TreeNode]) -> List[str]: record=[] path="" def ans(root,record,path): if path=="": path=path+str(root.val) else: path=path+"->"+str(root.val) if root.right: ans(root.right,record,path) if root.left: ans(root.left,record,path) if not root.right and not root.left: record.append(path) return record return ans(root,record,path)
从root开始设一个空字串(path)放入路过的点
开始往左往右走
随着递迴的深入path也会越来越多
当到达leaf时就停止纪录,此时path纪录的就是其中一个root-to-leaf路径
所以将path放入record再回传record
回传到最后record就纪录了所有root-to-leaf路径
最后执行时间29ms(faster than 97.51%)
那我们下题见