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

相关推荐
aqiu11111111 小时前
【并查集专题top】
c++·算法
叼烟扛炮11 小时前
C++ 知识点17 友元
开发语言·c++·算法·友员
richard_yuu12 小时前
数据结构|二叉树高阶进阶-经典算法
数据结构·c++·算法
不知名的忻12 小时前
Dijkstra算法(朴素版&堆优化版)
java·数据结构·算法··dijkstra算法
星星码️12 小时前
LeetCode刷题简单篇之反转字母
c++·算法·leetcode
naturerun13 小时前
螺旋形遍历奇数阶矩阵
c++·算法·矩阵
wuweijianlove13 小时前
算法复杂度的实验估算与误差分布建模的技术7
算法
佳xuan13 小时前
简而言之c++
c++·算法
变量未定义~14 小时前
星际争霸、宝石塔的亮度差异、寻找食物储量
算法
YL2004042614 小时前
027合并两个有序链表
java·数据结构·算法·链表