leetcode102. 二叉树的层次遍历
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树: [3,9,20,null,null,15,7], 返回其层次遍历结果: [ [3], [9,20], [15,7] ] 思路: 相比普通层次遍历,此题需要用二维列表输出结果。只需增加一个计数器保存每层结点的数量,每层遍历时,从队列中吐出相应数量的结点,加入列表中,再将此列表加入结果列表末尾。 class Solution : def levelOrder ( self , root : TreeNode ) - > List [ List [ int ] ] : p = root q = [ ] res = [ ] if p : q . append ( p ) tmp = [ ] tmp . append ( p . val ) res . append ( tmp ) n = 1 else : return [ ] while ( q ) : tmp = [ ] count = 0 for i in range ( n ) : p = q . pop ( 0 ) if p . left : q . append ( p . left ) tmp . append ( p . left . val ) count += 1 if p . right : q . append (