Leetcode 226 Invert Binary Tree

Given the root of a binary tree, invert the tree, and return its root.

image
Input: root = [4,2,7,1,3,6,9]
Output: [4,7,2,9,6,3,1]
image
Input: root = [2,1,3]
Output: [2,3,1]
Input: root = []
Output: []
  • Burada bize verilen ikili arama ağacını terse çevirmemiz isteniyor.
  • DFS yöntemi ile recursive olarak dallara kadar gidip ters çevirme işlemini yapabiliriz.
  • Dikkat edilmesi gereken en uç dalın yaprakları ters çevrildikten sonra sağ ve soldaki dallar da kendi içinde ters çevrilmelidirler.
    def invertTree(self, root):

        if root == None or (root.left == None and root.right==None):
            return root
        left = self.invertTree(root.left) #sol dalı ters çevir
        right = self.invertTree(root.right) #sağ dalı ters çevir

        #şimdi sol ile sağı kendi arasında yerini değiştir
        root.left = right
        root.right = left
        #ağacın son halini dön
        return root