/**
* Definition for a Node.
* type Node struct {
* Val int
* Children []*Node
* }
*/var res intvar dept intfuncdfs(root *Node){if root ==nil{return}
dept++
res =max(res, dept)dfs(root.Left)dfs(root.Right)
dept--}funcmaxDepth(root *Node)int{
res =0
dept =0dfs(root)return res
}
N叉树
/**
* Definition for a Node.
* type Node struct {
* Val int
* Children []*Node
* }
*/var res intvar dept intfuncdfs(root *Node){if root ==nil{return}
dept++
res =max(res, dept)for i :=0; i <len(root.Children); i++{dfs(root.Children[i])}
dept--}funcmaxDepth(root *Node)int{
res =0
dept =0dfs(root)return res
}
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/var res intvar dept intfuncdfs(root *TreeNode){if root ==nil{return}
dept++dfs(root.Left)dfs(root.Right)if root.Left ==nil&& root.Right ==nil{
res =min(res, dept)}
dept--}funcminDepth(root *TreeNode)int{
res =100010
dept =0dfs(root)if root ==nil{
res =0}return res
}
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/var count intfunc dfs (root *TreeNode){if root ==nil{return}
count++dfs(root.Left)dfs(root.Right)}funccountNodes(root *TreeNode)int{
count =0dfs(root)return count
}