今天都不太熟,大抵上都是参考别人的代码,但是不太理解的是为什么404的答案需要定义self.ans呢,没想明白。
# 代码随想录训练营第III期--017--python
# 110 平衡二叉树
# 第一次做,不太熟
def isBal(root):
def height(root):
if not root: return False
leftH = height(root.left)
rightH = height(root.right)
if leftH == -1 or rightH == -1 or abs(leftH - rightH) > 1:
return -1
else:
return max(leftH, rightH) + 1
return height(root) >= 0
# 257 二叉树的所有路径
def binpath(root):
res = []
def dfs(root, path):
if not root: return
path += str(root.val)
if not root.left and not root.right:
res.append(path)
elif not root.left:
dfs(root.right, path + '->')
elif not root.right:
dfs(root.left, path + '->')
else:
dfs(root.left, path + '->')
dfs(root.right, path + '->')
dfs(root, '')
return res
# 404 左叶子之和
def sumof(root):
self.ans = 0
def dfs(root):
if not root: return
if root.left and not root.left.right and not root.left.left:
self.ans += root.left.val
dfs(root.left)
dfs(root.right)
dfs(root)
return self.ans