-
[LeetCode] 113. Path Sum II알고리즘 문제 풀이 2021. 8. 5. 10:13
문제 출처: https://leetcode.com/problems/path-sum-ii/
Path Sum II - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
문제
이진트리의 root 와 정수 targetSum 이 주어지면, 루트에서 리프까지 경로의 합이 targetSum인 모든 경로를 반환하라.
리프는 자식이 없는 노드이다.
예제
Input: root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22 Output: [[5,4,11,2],[5,8,4,5]]
Input: root = [1,2,3], targetSum = 5 Output: []
Input: root = [1,2], targetSum = 0 Output: []
풀이
DFS를 이용하여 문제를 풀 수 있다.
DFS 방식으로 루트부터 리프 노드까지의 경로를 찾아간다. 경로를 탐색하면서 방문하는 노드들의 값을 합하고 리프 노드를 방문했을 때, targetSum과 비교하여 결과 리스트에 해당 경로를 추가할지 말지를 결정한다.
var pathSum = function(root, targetSum) { const ans = []; if (!root) { return ans; } var dfs = function(root, sum, path) { const pathSum = sum + root.val; const curPath = path.slice(); curPath.push(root.val); if (root.left == null && root.right == null) { if (pathSum == targetSum) { ans.push(curPath); } return; } if (root.left) { dfs(root.left, pathSum, curPath); } if (root.right) { dfs(root.right, pathSum, curPath); } } dfs(root, 0, []); return ans; };
Github: 113.js
GitHub - opwe37/Algorithm-Study
Contribute to opwe37/Algorithm-Study development by creating an account on GitHub.
github.com
'알고리즘 문제 풀이' 카테고리의 다른 글
[LeetCode] 786. K-th Smallest Prime Fraction (0) 2021.08.09 [LeetCode] 877. Stone Game (0) 2021.08.06 [LeetCode] 90. Subsets Ⅱ (0) 2021.08.04 [LeetCode] 827. Making A Large Island (0) 2021.08.02 [LeetCode] 542. 01 Matrix (0) 2021.07.30