Example 1: Input: root = [3,9,20,null,null,15,7] Output: [[3],[9,20],[15,7]] Example 2: Input: root = [1] Output: [[1]] Example 3: Input: root = [] Output: []
class Solution(object): def levelOrder(self, root): if not root: return [] Q = deque([root]) levels = [[root.val]] temp = deque() while Q: node = Q.popleft() if node.left: temp.append(node.left) if node.right: temp.append(node.right) if not Q: if temp: levels.append([n.val for n in temp]) Q = temp temp = deque() return levels
所有提供的實作中所使用的編碼模式是樹廣度優先搜尋(BFS)。
此模式通常逐層遍歷樹,在移動到下一個深度之前處理當前深度的所有節點。
BFS 使用佇列資料結構來實現,以追蹤每個層級的節點。
參考:
以上是二元樹層次順序遍歷 Leetcode的詳細內容。更多資訊請關注PHP中文網其他相關文章!