[Leetcode] 0102. バイナリツリーレベル順序トラバーサル

Python、C++、JavaScript、SQL、TypeScript の多様な LeetCode ソリューションを探索してください。面接の準備、学習、複数のプログラミング言語でのコードの練習に最適です。 Github リポジトリ リンク

与えられた  バイナリツリーの戻り値 ノードの値のレベル順のトラバース。 (つまり、左から右へ、レベルごとに)。

 

例 1:

入力: ルート = [3,9,20,null,null,15,7]
出力: [[3],[9,20],[15,7]]

例 2:

入力: ルート = [1]
出力: [[1]]

例 3:

入力: ルート = []
出力: []

 

制約:

  • ツリー内のノードの数は範囲内です [0, 2000].
  • -1000 <= ノード値 <= 1000

パイソン

				
					# 時間計算量: O(n) # 空間計算量: O(n) 入力から List、Optional をインポートします。 class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right class 解決方法: def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]: result: List[List[int]] = [] def bfs(node: Optional[TreeNode], level: int): if node is None: return if len(result) == level: result.append([]) result[level].append(node.val) if node.left: bfs(node.left, level + 1) if node.right: bfs(node.right, level + 1) bfs(root, 0) return result root = TreeNode(3) root.left = TreeNode(9) root.right = TreeNode(20) root.right.left = TreeNode(15) root.right.right = TreeNode(7) print(Solution().levelOrder(root))
				
			
ja日本語