题目:二叉树的层序遍历
解法:网上很多搜索方法,但我用的是递归的方法。
# 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]]
"""
if not root:
return []
# 先创建一个数组
self.res = []
# 1为第一层
self.add(1, root)
return self.res
def add(self, index, node):
# 先建一个【】保留这一层的数据
if len(self.res) < index:
self.res.append([])
# 保存根节点
self.res[index-1].append(node.val)
# 递归左右子树
if node.left:
self.add(index+1, node.left)
if node.right:
self.add(index+1, node.right)