leetcode hot二叉树的层序遍历

102. 二叉树的层序遍历

已解答

中等

相关标签

相关企业

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)

Definition for a binary tree node.

class TreeNode(object):

def init(self, val=0, left=None, right=None):

self.val = val

self.left = left

self.right = right

class Solution(object):

def levelOrder(self, root):

"""

:type root: Optional[TreeNode]

:rtype: List[List[int]]

"""

广度优先搜索

if root ==None:

return []

queue = []

final=[]

queue.append(root)

while queue!=[]:

left = len(queue)

final.append(queue[0])

queue_next=[]

for i in range(left):

if queue[i].left:

queue_next.append(queue[i].left)

if queue[i].right:

queue_next.append(queue[i].right)

final.append([x.val for x in queue])

queue = queue_next

queue_next=[]

return final

直接使用广度优先搜索去做,但是需要注意的是,我们需要额外去维护一个每一个层的lsit

相关推荐
张李浩15 小时前
Leetcode 054螺旋矩阵 采用方向数组解决
算法·leetcode·矩阵
big_rabbit050215 小时前
[算法][力扣101]对称二叉树
数据结构·算法·leetcode
WolfGang00732115 小时前
代码随想录算法训练营 Day11 | 二叉树 part01
数据结构
美好的事情能不能发生在我身上15 小时前
Hot100中的:贪心专题
java·数据结构·算法
2301_8217005315 小时前
C++编译期多态实现
开发语言·c++·算法
xixihaha132416 小时前
C++与FPGA协同设计
开发语言·c++·算法
小小怪75016 小时前
C++中的函数式编程
开发语言·c++·算法
xixixiLucky16 小时前
编程入门算法题---小明爬楼梯求爬n层台阶一共多少种方法
算法
剑锋所指,所向披靡!17 小时前
数据结构之线性表
数据结构·算法
m0_6727033118 小时前
上机练习第49天
数据结构·算法