404. Sum of Left Leaves

题目来源:
 
自我感觉难度/真实难度:
 
题意:
 
分析:
 
自己的代码:
class Solution(object):
    def sumOfLeftLeaves(self, root):
        """
        :type root: TreeNode
        :rtype: int
        """
        left=[]
        if not root:
            return
        
            
        self.sumOfLeftLeaves(root.left)
        left.append(root.val)
        self.sumOfLeftLeaves(root.right)
        
        return sum(left)

 

代码效率/结果:
 
优秀代码:
class Solution:
    def sumOfLeftLeaves(self, root):
        """
        :type root: TreeNode
        :rtype: int
        """
        result = 0
        if not root:
            return 0      
        if root.left and not root.left.left and not root.left.right:
            result += root.left.val
        return result+self.sumOfLeftLeaves(root.left)+self.sumOfLeftLeaves(root.right)   

 

代码效率/结果:
 36ms
自己优化后的代码:
 
反思改进策略:

1.树可以这样操作root.left.val

2.迭代要记住返回值是什么,想想最简单的情况

3.迭代可以出现在return中

 

posted @ 2019-01-13 21:47  dgi  阅读(136)  评论(0编辑  收藏  举报