タイトル説明:
二分木を上から下に1層ずつ出力. 同じ層のノードを左から右に順に出力し, 各層を1行に出力.
例:
問題の解決策: 現在のノードがどの層にあるかを判断するには、for ループを使用します。各 while ループでは、現在のキューの長さが常に現在のレイヤーの長さになるため、for ループを使用して一時的なリストに結果が表示されるので、毎回一時的なリストに格納される要素は各レイヤーのすべてのノードになります。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
#如何去分辨当前节点在哪一层,加入一个for循环
from collections import deque
queue = deque()
queue.append(root)
if not root:
return []
tmp = []
result = []
while queue:
for i in range(len(queue)):
node = queue.popleft()
tmp.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
result.append(tmp)
tmp = []
return result