美文网首页leetcode题解
【Leetcode】102—Binary Tree Level

【Leetcode】102—Binary Tree Level

作者: Gaoyt__ | 来源:发表于2019-07-15 00:15 被阅读0次
    一、题目描述

    给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。
    示例:

    例如:
    给定二叉树: [3,9,20,null,null,15,7]
    
    二、代码实现

    思路:用队列实现

    1. root为空,则返回空表;
    2. root不为空,记下此时队列中节点个数temp,temp个节点出队列的同时,记录节点值,并把节点的左右子节点加入队列;
    # Definition for a binary tree node.
    # class TreeNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution(object):
        def levelOrder(self, root):
            """
            :type root: TreeNode
            :rtype: List[List[int]]
            """
            if root == None: return []
            queue = [root]
            res = []
            while len(queue):
                layer = []
                for i in range(len(queue)):
                    cur = queue.pop(0)
                    layer.append(cur.val)
                    if cur.left: queue.append(cur.left)
                    if cur.right: queue.append(cur.right)
                res.append(layer)
            return res
    

    相关文章

      网友评论

        本文标题:【Leetcode】102—Binary Tree Level

        本文链接:https://www.haomeiwen.com/subject/romwkctx.html