257. 二叉樹的所有路徑
力扣題目鏈接(opens new window)
給定一個二叉樹,返回所有從根節點到葉子節點的路徑。
說明: 葉子節點是指沒有子節點的節點。
示例:?
思路:在葉子節點收割結果,如果不是葉子節點,則依次處理左右子樹,在處理左右子樹的具體邏輯里遞歸+回溯?
?
# 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 = right
class Solution:def binaryTreePaths(self, root: Optional[TreeNode]) -> List[str]:result = []if root is None:return resultpath = []self.backtracking(root, path, result)return resultdef backtracking(self, root: Optional[TreeNode], path, result) -> None:path.append(root.val)if root.left is None and root.right is None:path_str = ''for i in range(len(path) - 1):path_str += f'{path[i]}->'path_str += f'{path[-1]}'result.append(path_str)returnif root.left is not None:self.backtracking(root.left, path, result)path.pop()if root.right is not None:self.backtracking(root.right, path, result)path.pop()return