Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.
For example:
Given the below binary tree and sum = 22,
5
/
4 8
/ /
11 13 4
/ /
7 2 5 1
return
[
[5,4,11,2],
[5,8,4,5]
]
Python Solution:
# 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 pathSum(self, root, sum):
"""
:type root: TreeNode
:type sum: int
:rtype: List[List[int]]
"""
if not root: return []
cur = []
res = []
def preorder(root, sum):
cur.append(root.val)
if not root.left and not root.right and sum == root.val:
res.append(cur[:])
if root.left: preorder(root.left, sum - root.val)
if root.right: preorder(root.right, sum - root.val)
cur.pop()
preorder(root, sum)
return res
Summary:
- preorder and backtracking
LeetCode: 113. Path Sum II





近期评论