有多叉树,示例如下:
现在需要知道其深度,算法该如何实现呢?谢谢了!
给你伪代码吧
int ans = -1 ; void dfs(node x , int deep){ if ( x.sons.size() == 0 ) // 没有儿子结点了 { ans = max(ans , deep ) ; return ; } else { for ( int i = 0;i < x.sons.size();i ++) dfs(x.sons[i] , deep + 1) ; } }
node 是定义的结点结构 , ans存的答案 , 调用 dfs(root , 0 ) , 就可以了。