从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回: [3,9,20,15,7] 提示: 节点总数 List[int]: if root == None: return [] res = [] queue = [root] while queue: length = len(queue) for i in range(length): res.append(queue[0].val) if queue[0].left != None: queue.append(queue[0].left) if queue[0].right != None: queue.append(queue[0].right) queue.remove(queue[0]) return res
简单的层次遍历,这个题目难度是中等确实是有些不配[捂脸.jpg]
官方题解class Solution:
def levelOrder(self, root: TreeNode) -> List[int]:
if not root: return []
res, queue = [], collections.deque()
queue.append(root)
while queue:
node = queue.popleft()
res.append(node.val)
if node.left: queue.append(node.left)
if node.right: queue.append(node.right)
return res
作者:jyd
链接:https://leetcode.cn/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/solution/mian-shi-ti-32-i-cong-shang-dao-xia-da-yin-er-ch-4/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
官方题解也一样,这题都不算用层次遍历,他就是层次遍历。。。希望明天的升级版题目能难一些。