Post

leetcode(리트코드)-113 Path Sum II(PYTHON)

leetcode(리트코드)-113 Path Sum II(PYTHON)

leetcode 113 - Path Sum II 문제입니다.

1. 문제

https://leetcode.com/problems/path-sum-ii/


2. Input , Output


3. 분류 및 난이도

Medium 난이도 문제입니다.


4. 문제 해석

  • Tree가 주어지고, targetSum이 주어집니다.
  • Tree들의 자식들을 따라 내려가면서 값들을 더할 때 targetsum이 되고, 마지막 노드인 경우 해당 경로를 리스트에 담아 리턴하세요.

5. code

코드설명

  • 자식들을 따라가면서 경로를 temp에 담아주고, 자식노드들에게 임시합들을 더해줍니다.
  • 만약 임시 합이 targetSum과 같고, 마지막노드인 경우(root.left == None and root.right == None) temp리스트에 저장된 경로들을 결과 리스트에 넣고 리턴합니다.

python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 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 pathSum(self, root: TreeNode, targetSum: int) -> List[List[int]]:
        res = []
        if root == None :
             return None
        if root.left == None and root.right == None : 
            if root.val == targetSum : 
                res.append([root.val])    
            return res
        def DFS(root : TreeNode, val, targetSum,dis,res) :
            if root :
                dis.append(root.val)
                root.val = root.val + val
                if root.val == targetSum and root.left == None and root.right ==None: 
                    res.append(dis)
                else : 
                    DFS(root.left,root.val,targetSum,dis[:],res)
                    DFS(root.right,root.val,targetSum,dis[:],res)
        
        
        DFS(root.left,root.val,targetSum,[root.val],res)
        DFS(root.right,root.val,targetSum,[root.val],res)
        return res        

6. 결과 및 후기, 개선점

필요시 c++로 짜드립니다.

설명이 필요하다면 댓글을 달아주세요.

This post is licensed under CC BY 4.0 by the author.