Leetcode 104 Maximum Depth of Binary Tree
Given the root of a binary tree, return its maximum depth.
A binary tree’s maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Input: root = [3,9,20,null,null,15,7]
Output: 3
Input: root = [1,null,2]
Output: 2
Input: root = []
Output: 0
Input: root = [0]
Output: 1
- Burada bizden ağaçtakı en uzun dalın derinliğini sormaktadır.
- DFS yaklaşımı ile bu soruyu çözebiliriz.
- Temel kontrollerimiz şunlardır. Eğer node boş ise derinlik sıfırdır.Node var ama node un sağ ve sol child ları boş ise derinliği 1 olarak kabul ederiz.
- Eğer bu iki durum dışında yani sağ ve sol child varsa aynı kontrolleri onlar içinde yaparak recursive şekilde maxDepth fonksiyonunu çağırırız.
- Burada dikkat edilmesi gereken recursive çağrılar sırasında elimizdeki node un derinliğini hesaplarken sağ ve sol child lardan derinliği daha büyük olanı seçer daha sonra buna 1 ekleriz.
def maxDepth(self, root: TreeNode) -> int:
if(root is None):
return 0
if(root.left is None and root.right is None):
return 1
left = self.maxDepth(root.left)
right = self.maxDepth(root.right)
return max(left,right)+1