iT邦幫忙

0

leetcode with python:404. Sum of Left Leaves

  • 分享至 

  • xImage
  •  

題目:

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.

給定一binary tree的root,回傳其所有左葉值的和

這題自己寫一個判斷Node是不是leaf的函式會方便不少

# 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:
        def isleaf(root):
            if root and root.left==None and root.right==None:
                return True
            else:
                return False
        
        ans=[0]
        
        def x(root):
            if not root:
                return
            
            if isleaf(root.left):
                ans[0]=ans[0]+root.left.val
            else:
                x(root.left)
                
            if not isleaf(root.right):
                x(root.right)
            
        x(root)
        return ans[0]

先自製一個判斷Node是不是leaf的函式
接著開始遞迴,若一開始root是None直接return
利用事先寫好的函式判斷root.left和root.right是不是leaf
若root.left是leaf則將其值加到ans[0]
同時因為它不會有左leaf,所以不用往下探索了
同理,若root.right是leaf,也不用往下探索
最後回傳ans[0]
最後執行時間28ms(faster than 98.38%)

那我們下題見


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言