こんにちは
今回の学びは
・level orderといわれたらbfsの問題
問題は。。。
(時間配分は5分問題理解 10分検討 10分実装 20分振り返り の一文45分構成)
まずは入出力をしっかりおさえましょう。
これはlevel orderといわれたらbfsの問題です。
実装前後でこれは毎回書きましょう。timespace analysis (時間とスペースの分析)は
O(n)で
実際の実装はこちら
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if root == None: return []
stack = [root]
ans = []
while len(stack) > 0:
another_stack = []
leveled_nodes = []
while len(stack) > 0:
node = stack.pop(0)
if node != None:
leveled_nodes.append(node.val)
if node.left: another_stack.append(node.left)
if node.right: another_stack.append(node.right)
ans.append(leveled_nodes)
stack.extend(another_stack)
return ans
実装後です。timespace analysis (時間とスペースの分析)は ◯◯
todo: list extend の実行時間をしらべておきましょう => pythonのしくみ
まとめ
・level orderといわれたらbfsの問題
以上です