题解 | #求二叉树的层序遍历#

求二叉树的层序遍历

http://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3

层次遍历: 通过辅助栈,按层进行展开,不断弹出双端队列的头部,并将不为空的左右子树压入双端队列的尾部,这个过程中需要记录每层的数据多少,防止多弹出和少压入

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

#
# 
# @param root TreeNode类 
# @return int整型二维数组
#
class Solution:
    def levelOrder(self , root ):
        # write code here
        if not root: return []
        s = [root]
        res = []
        while s:
            cur_len = len(s)
            tmp_res = []
            while cur_len:
                node = s.pop(0)
                tmp_res.append(node.val)
                if node.left: s.append(node.left)
                if node.right: s.append(node.right)
                cur_len -= 1
            res.append(tmp_res)
        return res
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务