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

相关推荐
回敲代码的猴子2 分钟前
2月18日打卡
算法
追随者永远是胜利者2 分钟前
(LeetCode-Hot100)647. 回文子串
java·算法·leetcode·职场和发展·go
宇木灵11 分钟前
C语言基础-六、指针
c语言·开发语言·学习·算法
苦藤新鸡12 分钟前
64 搜索平移递增数组中的元素
数据结构·算法
Vic1010116 分钟前
链表算法三道
java·数据结构·算法·链表
二年级程序员16 分钟前
一篇文章掌握“栈”
c语言·数据结构
再难也得平30 分钟前
[LeetCode刷题]128.最长连续序列(从零开始的java题解)
java·算法·leetcode
xiaoye-duck39 分钟前
《算法题讲解指南:优选算法-双指针》--05有效三角形的个数,06查找总价值为目标值的两个商品
c++·算法
ArturiaZ41 分钟前
【day31】
开发语言·c++·算法
xiaoye-duck1 小时前
《算法题讲解指南:优选算法-双指针》--07三数之和,08四数之和
c++·算法