LeetCode題解(0404):計算二叉樹的左子葉之和(Python)

題目:原題鏈接(簡單)

解法 時間複雜度 空間複雜度 執行用時
Ans 1 (Python) O(n) O(n) 44ms (65.99%)

LeetCode的Python執行用時隨緣,只要時間複雜度沒有明顯差異,執行用時一般都在同一個量級,僅作參考意義。

解法一(遞歸):

def sumOfLeftLeaves(self, root: TreeNode) -> int:
    def helper(node, maybe=False):
        if node is None:
            return 0
        if node.left is None and node.right is None:
            if maybe:
                return node.val
            else:
                return 0
        elif node.right is None:
            return helper(node.left, maybe=True)
        elif node.left is None:
            return helper(node.right)
        else:
            return helper(node.left, maybe=True) + helper(node.right)

    return helper(root)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章