LeetCode-二叉树的层次遍历
题目描述
给你一个二叉树,请你返回其按层序遍历得到的节点值。 (即逐层地,从左到右访问所有节点)。
如:
二叉树:[3,9,20,null,null,15,7]
返回其层序遍历结果:
思路
将树的各层节点放在数组里,再遍历数组获取子节点的值,最主要的是把各层的节点单独放在一个列表里存起来。(开始没考虑单独存一行的数据,出错了以后才重新修改)
代码实现
# 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: TreeNode
:rtype: List[List[int]]
"""
Inorder_List=[]
if not root:
return []
else:
temp_q=[]
temp_q.append(root)
Inorder_List.append([root.val])
while len(temp_q)!=0:
level_value=[]
temp_q1=[]
for a in temp_q:
if a.left:
temp_q1.append(a.left)
level_value.append(a.left.val)
if a.right:
temp_q1.append(a.right)
level_value.append(a.right.val)
temp_q=temp_q1
if len(level_value)!=0:
Inorder_List.append(level_value)
return Inorder_List