리트코드 112번
4405 단어 JavaScript알고리즘코딩 테스트JavaScript
나의 풀이
var hasPathSum = function(root, targetSum) {
let count = 0;
if (!root) {
return false;
}
function DFS(root, targetSum) {
if (!root.left && !root.right) {
// console.log(root.val, targetSum);
if (targetSum-root.val === 0) count = 1;
return;
}
targetSum -= root.val;
if (root.left) {
DFS(root.left, targetSum);
}
if (root.right) {
DFS(root.right, targetSum);
}
targetSum += root.val;
}
DFS(root, targetSum);
return count === 1;
};
DFS를 이용해서 탐색하면서 root.val을 targetSum에 빼주고, node의 children이 없는 경우, targetSum이 0이면 count를 1로 바꿔준다. 그리고 리턴한다. 탐색이 끝나고 count가 1이면 true 그렇지 않으면 false를 리턴한다.
Author And Source
이 문제에 관하여(리트코드 112번), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@htogether7/리트코드-112번저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)