Soruda bize bir binary tree veriliyor ve bu binary tree deki her basamağı kökten başlayarak yazmamız isteniyor.
Burada BFS ve que yapısı kullanarak soruyu çözebiliriz.
İlk olarak kökü que ekleriz [1]
Daha sonra programdaki adımları izleyerek 1’i quedan çıkarır onun sağ ve sol dallarındaki nodeları ekleriz[2,3] 1’i basamak listesine(level) ekler sonra da bu listeyi sonuç listesine ekleriz.
-Ve bu şekilde que içerisindeki değerler bitene kadar devam ederiz.
# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclassSolution:deflevelOrder(self,root:Optional[TreeNode])->List[List[int]]:res=[]#sonuç listesini oluştururuz.q=collections.deque()#python que yapsını oluştururuz.q.append(root)#que ilk node olan kökü ekleriz.whileq:#que içinde değer olduğu süreceqLen=len(q)#que boyutunu alırız.level=[]#ağaçdaki basamakların değerlerini burada tutacağız.[3],[9,20]...foriinrange(qLen):node=q.popleft()#quedaki ilk giren değeri al(ilk giren ilk çıkar)ifnode:#node değeri var iselevel.append(node.val)#bunu basamağın değer listesine ekleq.append(node.left)#sol dalında node var ise queya ekleq.append(node.right)#sağ dalında node var ise queya ekleiflevel:#eğer basamakta değer var ise sonuç listesine ekleres.append(level)returnres