Leetcode 107 Binary Tree Level Order Traversal II

image
Input: root = [3,9,20,null,null,15,7] Output: [[15,7],[9,20],[3]]
Input: root = [1]
Output: [[1]]
  • Soruda bize bir binary tree veriliyor ve bu binary tree dallarından başlayarak köke doğru level level değerlerini yazdırmamız isteniyor.
  • Bu soru leetcode 102’ye çok benzemektedir.
  • Tüm ağacı BfS kullanarak level level gezeriz ve değerleri bir listeye ekleriz.
  • Elimizdeki liste kökten dala doğru oluşmuştur.Ama bizden dallardan köke uzanan bir sonuç beklenmektedir.Tek yapmamız gereken bu listeyi terse çevirerek sonucu bulmaktır.
# 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 = right
class Solution:
    def levelOrderBottom(self, root: TreeNode) -> List[List[int]]:
            if not root: return []
            queue = collections.deque([root])
            res=[]
            while queue:
                tmp = []
                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)
                res.append(tmp)
            return res[::-1]