next_nodes循环哪里感觉没用啊,一直都是【】
来源:4-6 Python数据结构常考题之二叉树

_不辞而别
2019-03-24
class Solution:
def levelOrder(self, root: TreeNode) -> list:
"""
层序遍历
:param root:
:return: list[list]
"""
res = []
cur_nodes = [root]
next_nodes = []
res.append([i.val for i in cur_nodes])
while cur_nodes or next_nodes:
for node in cur_nodes:
if node.left:
next_nodes.append(node.left)
if node.right:
next_nodes.append(node.right)
if next_nodes:
res.append([i.val for i in next_nodes])
cur_nodes = next_nodes
next_nodes = []
return res
while cur_nodes or next_nodes:
这里next_nodes感觉没用啊,一直都是空的。
while cur_nodes:
直接这样可以吗?
写回答
1回答
-
PegasusWang
2019-03-24
可以的。因为一开始和循环中的 next_nodes 每次都是空的了,所以这里其实不用判断 next_nodes是否为空。
这一题需要注意的 是 root 可能是空的,一开始还要加上判断。如果 root 为空直接返回空列表
00
相似问题