猿问

现在需要知道其深度,算法该如何实现呢?谢谢了!

有多叉树,示例如下:

呼唤远方
浏览 210回答 1
1回答

喵喔喔

给你伪代码吧int&nbsp;ans&nbsp;=&nbsp;-1&nbsp;;&nbsp; void&nbsp;dfs(node&nbsp;x&nbsp;,&nbsp;int&nbsp;deep){&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;x.sons.size()&nbsp;==&nbsp;0&nbsp;)&nbsp;//&nbsp;没有儿子结点了 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;=&nbsp;max(ans&nbsp;,&nbsp;deep&nbsp;)&nbsp;;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(&nbsp;int&nbsp;i&nbsp;=&nbsp;0;i&nbsp;<&nbsp;x.sons.size();i&nbsp;++) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dfs(x.sons[i]&nbsp;,&nbsp;deep&nbsp;+&nbsp;1)&nbsp;;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} }node 是定义的结点结构 , ans存的答案 , 调用 dfs(root , 0 ) , 就可以了。
随时随地看视频慕课网APP
我要回答