package main import . "nc_tools" /* //递归 func maxDepth( root *TreeNode ) int { if root == nil { return 0 } return max(maxDepth(root.Left), maxDepth(root.Right)) +1 } func max(x, y int ) int { if x > y { return x } return y } */ //迭代 func maxDepth(root *TreeNode) int { if root == nil { return 0 } queue := []*TreeNode{root} res := 0 for len(queue) > 0 { n := len(queue) for i := 0; i < n; i++ { node := queue[0] queue = queue[1:] if node.Left != nil { queue = append(queue, node.Left) } if node.Right != nil { queue = append(queue, node.Right) } } res++ } return res }