【Leetcode】102—Binary Tree Level Order Traversal

一、题目描述

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

例如:
给定二叉树: [3,9,20,null,null,15,7]
【Leetcode】102—Binary Tree Level Order Traversal_第1张图片
二、代码实现

思路:用队列实现

  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 Order Traversal)