一隻箱子裡的貓,看著電腦螢幕

Schrödinger's Programmer

奔跑吧工程師,趁年輕跑得越遠越好

[LeetCode] #404 Sum of Left Leaves (Easy)

LeetCode 第 404 題 Sum of Left Leaves,難度 Easy

Ray

LeetCode #290 run result

用 Python3 解 LeetCode 系列,Sum of Left Leaves,屬於 Easy

原始題目

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

Example 1:

leftsum-tree

Input: root = [3,9,20,null,null,15,7]
Output: 24
Explanation: There are two left leaves in the binary tree, with values 9 and 15 respectively.

Example 2:

Input: root = [1]
Output: 0

Constraints:

  • The number of nodes in the tree is in the range [1, 1000].
  • -1000 <= Node.val <= 1000

題目分析

判斷一個二元樹的左子葉總和

把每個節點送進遞迴函數裡面取得該節點的左節點,並且送進同一個函數取得更深入的左節點
如果傳入節點的左節點不為空,且該節點的左節點沒有更深入的左節點
而且該節點的左節點的右節點為空,則找到了一個左子葉

判斷式長得像:

if (node->left != NULL && node->left->left == NULL && node->left->right == NULL) {
    找到左子葉
}

解題過程

# 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 sumOfLeftLeaves(self, root: Optional[TreeNode]) -> int:
        if not root: 
            return 0
        
        left_left_leaves_sum = self.sumOfLeftLeaves(root.left)
        right_left_leaves_sum = self.sumOfLeftLeaves(root.right)
        
        cur_left_leaf_val = 0
        if root.left and not root.left.left and not root.left.right: 
            cur_left_leaf_val = root.left.val
            
        return cur_left_leaf_val + left_left_leaves_sum + right_left_leaves_sum

結果

result

最新文章

Category

Tag