本文共 1506 字,大约阅读时间需要 5 分钟。
Title:
Find the sum of all left leaves in a given binary tree.Example:
3 / \ 9 20 / \ 15 7There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.
方法一:42ms
递归# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution(object): def isLeaf(self, root): if root.left == None and root.right == None: return True def sumOfLeftLeaves(self, root): """ :type root: TreeNode :rtype: int """ if root == None: return 0 s = 0 if root.left and self.isLeaf(root.left): s += root.left.val return s + self.sumOfLeftLeaves(root.left) + self.sumOfLeftLeaves(root.right)
方法二:38ms
# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution(object): def sumOfLeftLeaves(self, root): """ :type root: TreeNode :rtype: int """ self.ans = 0 def findleave(node): if not node: return 0 if node.left: if not node.left.left and not node.left.right: self.ans += node.left.val else: findleave(node.left) if node.right: findleave(node.right) findleave(root)
转载地址:http://igcrj.baihongyu.com/