😊
Path Sum II
August 28, 2022
문제 링크
조건
- 트리가 가지고 있는 노드의 갯수 [0, 5000]. -1000 <= Node.val <= 1000 -1000 <= targetSum <= 1000
입력값
- root = Binary Tree의 루트
- targetSum = 각 노드의 값을 합쳤을때 나와야 하는 값
출력값
- 2차원 배열 = root 에서 leaf 노드 까지의 path
풀이과정
- tree를 preorder로 traverse하면서 현재 노드의 값을 배열에 넣고 sum 에 현재 노드의 값을 더한다
- sum이 targetSum과 같고 leaf 노드인 경우 result에 결과 넣기
코드
var pathSum = function (root, targetSum) {
let result = [];
let a = [];
traverse(root, a, 0);
function traverse(r, arr, sum) {
if (!r) {
return;
}
sum += r.val;
arr.push(r.val);
if (sum === targetSum && r.left === null && r.right === null) {
result.push(arr);
return;
}
traverse(r.left, [...arr], sum);
traverse(r.right, [...arr], sum);
}
return result;
};
😊