Given the root of a binary tree, check whether it is a mirror of itself (i.e., symmetric around its center).
Input: root = [1,2,2,3,4,4,3]
Output: true
Input: root = [1,2,2,null,3,null,3]
Output: false
Soruda bize bir binary tree veriliyor ve bu treenin sağ ve sol kollarının simetrik olup olmadığı soruluyor.
Sağ ve sol kollar için rekürsif olarak simetrik olup olmadığını kontrol ederek soruyu çözebiliriz.
Resimde görüleceği gibi birinci simetri kontrolü için solun solu ve sağın sağı, ikinci simetri kontrolü için solun sağı ve sağın solu kontrol edilir.
# 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:defisSymmetric(self,root:Optional[TreeNode])->bool:ifnotroot:returnTrue#kök yok ise true dönreturnself.IsSymetric(root.left,root.right)#simetrik kontrol eden programı çağırdefIsSymetric(self,left,right):ifleftisNoneorrightisNone:#sağ ve sol node boş ise true dönreturnleft==rightifleft.val!=right.val:#sağ ve sol node birbirine eşit deği ise false dön returnFalseoutPair=self.IsSymetric(left.left,right.right)#simetri kontrolü için solun solunu ve sağın sağını çağır inPiar=self.IsSymetric(left.right,right.left)#simetri kontrolü için solun sağını ve sağın solunu çağırreturnoutPairandinPiar#ikisi de true ise true döner