[LeetCode]113. Path Sum II
113. Path Sum II
DFS
class Solution(object):
    def pathSum(self, root, sum):
        """
        :type root: TreeNode
        :type sum: int
        :rtype: List[List[int]]
        """
        def dfs(node, cursum, path):
            if not node.left and not node.right:
                if cursum == sum:
                    res.append(path)
                return
            if node.left:
                dfs(node.left, cursum + node.left.val, path + [node.left.val])
            if node.right:
                dfs(node.right, cursum + node.right.val, path + [node.right.val])
        if not root:
            return []
        res = []
        dfs(root, root.val, [root.val])
        return res
class Solution(object):
    def pathSum(self, root, sum):
        """
        :type root: TreeNode
        :type sum: int
        :rtype: List[List[int]]
        """
        def dfs(node, cursum, path):
            if not node.left and not node.right:
                if cursum == node.val:
                    path.append(node.val)
                    res.append(path)
                return
            if node.left:
                dfs(node.left, cursum-node.val, path + [node.val])
            if node.right:
                dfs(node.right, cursum-node.val, path + [node.val])
        if not root:
            return []
        res = []
        dfs(root, sum, [])
        return res
关注公众号:数据结构与算法那些事儿,每天一篇数据结构与算法
                    
                
                
            
        
浙公网安备 33010602011771号