剑指 Offer 55 - I. 二叉树的深度

剑指 Offer 55 - I. 二叉树的深度

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func maxDepth(root *TreeNode) int {
   if root == nil {
      return 0
   }
   if root.Left == nil && root.Right == nil {
      return 1
   }
   return max(maxDepth(root.Left), maxDepth(root.Right)) + 1
}

func max(a, b int) int {
   if a > b {
      return a
   }
   return b
}

 

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func maxDepth(root *TreeNode) int {
   if root == nil {
      return 0
   }
   res := 0
   var queue []*TreeNode
   queue = append(queue, root)
   for len(queue) > 0 {
      n := len(queue)
      for i := 0; i < n; i++ {
         if queue[i].Left != nil {
            queue = append(queue, queue[i].Left)
         }
         if queue[i].Right != nil {
            queue = append(queue, queue[i].Right)
         }
      }
      res++
      queue = queue[n:]
   }
   return res
}

 


版权声明:本文为tanjunchen原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。