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 为空直接返回空列表

0
0

Python工程师面试宝典 一线大厂资深面试官亲授

Python工程师面试必看,资深面试官亲授,倍增面试成功率

1035 学习 · 102 问题

查看课程