Advertisement
Alexxik

Untitled

Sep 17th, 2023 (edited)
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 0.80 KB | None | 0 0
  1. // MARK: - 104. Maximum Depth of Binary Tree
  2.  
  3. // 1 вариант
  4.  
  5. func maxDepth(_ root: TreeNode?) -> Int {
  6.     if root == nil {
  7.         return 0
  8.     }
  9.     return 1 + max(maxDepth(root?.left), maxDepth(root?.right))
  10. }
  11.  
  12.  
  13.  
  14. // 2 вариант
  15.  
  16. func maxDepth(_ root: TreeNode?) -> Int {
  17.     if root == nil {
  18.         return 0
  19.     }
  20.    
  21.     // максимум для второго уровня maximum + 1 = 0 + 1 = 1 - что верно
  22.     var maximum = 0
  23.    
  24.     func dfs(_ node: TreeNode?, maximum: Int) -> Int {
  25.         if node == nil {
  26.             return maximum
  27.         }
  28.         return max(dfs(node?.left, maximum: maximum+1), dfs(node?.right, maximum: maximum+1))
  29.        
  30.     }
  31.    
  32.     return max(dfs(root?.left, maximum: maximum+1), dfs(root?.right, maximum: maximum+1))
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement