自己写的,使用了经典的广度优先搜素(BFS):
class Solution: def sumOfLeftLeaves(self, root: Optional[TreeNode]) -> int: # 初始化队列,将根节点放入队列中 queue = [root] # 初始化结果变量 res = 0 # 遍历队列,直到队列为空 while queue: # 取出队列中的第一个节点 cur = queue.pop(0) # 如果当前节点的左子节点存在 if cur.left: # 将左子节点添加到队列中 queue.append(cur.left) # 如果当前左子节点没有左子节点和右子节点(即为左叶子节点) if not cur.left.left and not cur.left.right: # 将左叶子节点的值加到结果中 res += cur.left.val # 如果当前节点的右子节点存在 if cur.right: # 将右子节点添加到队列中 queue.append(cur.right) # 返回左叶子节点的和 return res
标签:左子,queue,cur,队列,leedcode,叶子,节点,left From: https://www.cnblogs.com/yyyjw/p/18152735