面试题 04.03. 特定深度节点链表
题目描述
解题思路
1、层次遍历 + 构造链表
代码实现
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def listOfDepth(self, tree: TreeNode) -> List[ListNode]:
if not tree:
return []
queue = [tree]
res = []
while queue:
size = len(queue)
head = ptr = None
arr = []
for i in range(size):
node = queue.pop(0)
if i == 0:
head = ptr = ListNode(node.val)
else:
ptr.next = ListNode(node.val)
ptr = ptr.next ### 此步不可少啊!!!
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
res.append(head)
return res