본문 바로가기
알고리즘/leetcode

[Leetcode/JS] 404. Sum of Left Leaves

by 질서정연_ 2023. 7. 17.

 

문제링크 

404. Sum of Left Leaves

 

Sum of Left Leaves - LeetCode

Can you solve this real interview question? Sum of Left Leaves - Given the root of a binary tree, return the sum of all left leaves. A leaf is a node with no children. A left leaf is a leaf that is the left child of another node.   Example 1: [https://ass

leetcode.com

 

Given the root of a binary tree, return the sum of all left leaves.

A leaf is a node with no children. A left leaf is a leaf that is the left child of another node.

 

left leaves 의 합을 구하면 되는 문제이다. 

 
 
 

기억하면 좋을 것 

재귀로 문제를 풀 때 종료 조건을 꼼꼼히 생각 해 보자.

이번에 문제를 풀 때 left child가 없고 right child 만 있을때의 경우를 생각해 주지 않아서 틀렸었는데 

그래서 제출을 3번 정도 하고나서야 정답을 맞출 수 있었다. 

 

지금껏 풀던대로 종료 조건, 반복 조건을 생각하고 문제를 풀어야겠다.

 

해결 코드

/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
var sumOfLeftLeaves = function (root) {
    return dfs(root);
};

let dfs = (node) => {
    if(!node) return 0;
    if(!node.left && !node.right) return 0;
    if(!node.left && node.right) return 0 + dfs(node.right);
    if((!node.left.left && !node.left.right)) return node.left.val + dfs(node.right);

    return dfs(node.left) + dfs(node.right);
}
 
 
 
 

Submission Detail

댓글