此BFS遍历使用列表理解来遍历树
def levelOrderBottom(self, root):
res, queue = [], [root]
while queue:
res.append([node.val for node in queue if node])
queue = [child for node in queue if node for child in (node.left, node.right)]
return res[-2::-1]
对于
res.append([node.val for node in queue if node])
我知道可以像这样
for node in queue:
if node:
res.append([node.val])
但是我不太清楚这段代码是什么
queue = [child for node in queue if node for child in (node.left, node.right)]
反复进行操作,也不以非列表理解格式进行复制
答案 0 :(得分:1)
嵌套列表的理解以相同的顺序转换为嵌套的for循环。
/etc/systemd/system
成为
queue = [child for node in queue if node for child in (node.left, node.right)]