📜  门| GATE-CS-2015(套装3)|第 43 题(1)

📅  最后修改于: 2023-12-03 15:12:42.817000             🧑  作者: Mango

题目描述:

给定一个二叉树和一个整数S,找到所有从根节点到叶子节点的路径,这些路径上所有节点的和为S。

函数定义:
def path_sum(root, S):
    """
    :type root: TreeNode
    :type S: int
    :rtype: List[List[int]]
    """
输入:
  • root 二叉树的根节点
  • S 需要求的路径节点和
输出:
  • 返回一个列表,包含所有从根节点到叶子节点的路径,这些路径上所有节点的和为S。
示例:
输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], S = 22
输出:[[5, 4, 11, 2], [5, 8, 4, 5]]
解释:
从根节点到叶子节点的路径,这些路径上所有节点的和为22:
路径1:5->4->11->2
路径2:5->8->4->5
提示:
  1. 需要使用深度优先搜索来遍历二叉树,并记录当前路径上所有节点的和
  2. 在递归搜索左右子树时,将当前节点加入路径列表并更新路径节点和,搜索完左右子树后再将当前节点从路径列表中移除
  3. 当搜索到叶子节点时,判断当前路径节点和是否等于S,如果是则将路径列表添加到结果列表中
  4. 返回结果列表即为从根节点到叶子节点所有满足要求的路径