動機
不管right leaf的dfs
Problem
Given the root
of a binary tree, return the sum of all left leaves.
Example 1:
Input: root = [3,9,20,Leetcode,null,15,7]Output: 24Explanation: There are two left leaves in the binary tree, with values 9 and 15 respectively.
Example 2:
Input: root = [1]Output: 0
Constraints:
- t
- The number of nodes in the tree is in the range
[1, 1000]
. t -1000 <= Node.val <= 1000
Sol
class Solution:
def sumOfLeftLeaves(self, root: Optional[TreeNode]) -> int:
def dfs(r):
if not r:
return 0
elif not r.left and not r.right:
return r.val
else:
ret = dfs(r.left)+dfs(r.right)
ret = ret-r.right.val if r.right and not r.right.left and not r.right.right else ret
return ret
if root and not root.left and not root.right:
return 0
else:
return dfs(root)