Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么按级别顺序遍历树会导致值错误?_Python_Tree - Fatal编程技术网

Python 为什么按级别顺序遍历树会导致值错误?

Python 为什么按级别顺序遍历树会导致值错误?,python,tree,Python,Tree,我正在编写一个函数来解决以下问题: 给定二叉树的根,返回其节点值的级别顺序遍历(即从左到右,逐级) e、 g.输入:root=[3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] " 这是我的密码: class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self

我正在编写一个函数来解决以下问题:

给定二叉树的根,返回其节点值的级别顺序遍历(即从左到右,逐级)

e、 g.输入:root=[3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] "

这是我的密码:

class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

class Solution:
    def levelOrder(self, root: TreeNode):
        queue = deque([root])
        output = []

        if not root:
            return output

        while queue:
            root = queue.popleft()
            output.append(root.val)
            queue.append(root.left)
            queue.append(root.right)

        return output
我似乎得到了一个错误:行output.append(root.val)的“Nonetype没有属性val”。你知道为什么吗

我以为我在根为空时覆盖了边缘情况

另外,我知道我的代码并不能解决这个问题,因为它不能通过不将每个级别划分为不同的数组来解决“级别”问题


但是我想先看看我的代码是否以正确的顺序遍历树

root.left
root.right
可以是
None
,如果不是root子句,您可以将它们附加到
队列
之后。当然!Thankso在root=queue.popleft()行之后,如果我添加一个“if root==None:continue”是否有效?为什么要问?你试过了吗?