题解 | #求二叉树的层序遍历#
求二叉树的层序遍历
https://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param root TreeNode类
# @return int整型二维数组
#
from collections import deque
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
# write code here
if root == None:
return []
queue = deque()
l = []
queue.append(root)
while(len(queue)>0):
# cur = queue.popleft()
row = []
size = len(queue)
# row.append(cur.val)
for i in range(size):
cur = queue.popleft()
row.append(cur.val)
if cur.left:
queue.append(cur.left)
if cur.right:
queue.append(cur.right)
l.append(row)
return l
用队列解决这个问题
广度优先搜索:一层一层遍历二叉树
遍历到一个节点,将其左右子节点加入到队列中;
在进入新的一行的时候,计算其长度size,在队列中前size个元素都放到row的列表中
while每循环一次,就是进入了新的一层
#我的实习求职记录#实习算法题题解 文章被收录于专栏
实习算法题
