Binary Tree Level Order Traversal
Question
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
Example:
Given binary tree [3,9,20,null,null,15,7]
,
return its level order traversal as:
Answer
solution:
Knowledge:
这道题一开始我没看明白。一直在思考怎么用python来表达tree。后来看了网上文章后才明白,预先已经定义TreeNode了。因此在本地调试时,就需要先定义这个类才行。而在使用时,访问树问题:实际上root代表了一个树结点!取值是用val,通过其left和right才能遍历往下,不断切换新的结点,而不是像其他结构一直对root进行切片索引,这是树的特点!!!
以下是一些调试信息,帮助理解上面代码。遍历树问题——按层遍历:遍历列表中结点的值(val)保存,再将非None的子结点生成一个list赋给level =
[leaf for leaf in temp if leaf]
,从而不断寻找一直到None,跳出while leaf
。记住remember这段遍历树的代码。具体代码编写中,可以这么思考:
python中extend与append的区别:append方法向列表的尾部添加一个新的元素,如果是列表,则列表就是一个元素;extend()方法只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中。
Last updated
Was this helpful?