<div class="cnblogs_code">
思路:
1.<span style="color: #000000">非递归层序遍历
2.<span style="color: #000000">使用辅助队列,根结点先入队列
3.<span style="color: #000000"> 循环判断队列是否为空,如果不为空就继续循环队列里面的每个结点
4.<span style="color: #000000"> 循环队列时,当前当前结点出队列,把该结点的左右孩子入队列
TreeDepth(tree)
<span style="color: #0000ff">if !tree <span style="color: #0000ff">return 0
<span style="color: #008080">array_push(queue,<span style="color: #000000">tree);
depth=0
<span style="color: #0000ff">while(!<span style="color: #0000ff">empty<span style="color: #000000">(queue)){
++<span style="color: #000000">depth
<span style="color: #0000ff">for i=0;i<queue.size;i++<span style="color: #000000">
node=<span style="color: #008080">array_pop<span style="color: #000000">(queue)
<span style="color: #008080">array_push(queue,node-><span style="color: #000000">left);
<span style="color: #008080">array_push(queue,node-><span style="color: #000000">right);
<span style="color: #0000ff">return depth
= = __construct(->val = TreeDepth((!) 0=(,);
=0(!(++=( </span><span style="color: #0000ff">for</span>(<span style="color: #800080">$i</span>=0;<span style="color: #800080">$i</span><<span style="color: #800080">$size</span>;<span style="color: #800080">$i</span>++<span style="color: #000000">){
</span><span style="color: #800080">$node</span>=<span style="color: #008080">array_shift</span>(<span style="color: #800080">$queue</span>);<span style="color: #008000">//</span><span style="color: #008000">非常重要 删除第一个元素</span>
<span style="color: #0000ff">if</span>(<span style="color: #800080">$node</span>-><span style="color: #000000">left){
</span><span style="color: #008080">array_push</span>(<span style="color: #800080">$queue</span>,<span style="color: #800080">$node</span>-><span style="color: #000000">left);
}
</span><span style="color: #0000ff">if</span>(<span style="color: #800080">$node</span>-><span style="color: #000000">right){
</span><span style="color: #008080">array_push</span>(<span style="color: #800080">$queue</span>,<span style="color: #800080">$node</span>-><span style="color: #000000">right);
}
}
}
</span><span style="color: #0000ff">return</span> <span style="color: #800080">$depth</span><span style="color: #000000">;
}
<span style="color: #800080">$node1=<span style="color: #0000ff">new TreeNode(1<span style="color: #000000">);
<span style="color: #800080">$node2=<span style="color: #0000ff">new TreeNode(2<span style="color: #000000">);
<span style="color: #800080">$node3=<span style="color: #0000ff">new TreeNode(3<span style="color: #000000">);
<span style="color: #800080">$node4=<span style="color: #0000ff">new TreeNode(4<span style="color: #000000">);
<span style="color: #800080">$node5=<span style="color: #0000ff">new TreeNode(5<span style="color: #000000">);
<span style="color: #800080">$node6=<span style="color: #0000ff">new TreeNode(6<span style="color: #000000">);
<span style="color: #800080">$node7=<span style="color: #0000ff">new TreeNode(7<span style="color: #000000">);
<span style="color: #800080">$tree=<span style="color: #800080">$node1<span style="color: #000000">;
<span style="color: #800080">$node1->left=<span style="color: #800080">$node2<span style="color: #000000">;
<span style="color: #800080">$node1->right=<span style="color: #800080">$node3<span style="color: #000000">;
<span style="color: #800080">$node2->left=<span style="color: #800080">$node4<span style="color: #000000">;
<span style="color: #800080">$node2->right=<span style="color: #800080">$node5<span style="color: #000000">;
<span style="color: #800080">$node4->right=<span style="color: #800080">$node6<span style="color: #000000">;
<span style="color: #800080">$node3->left=<span style="color: #800080">$node7<span style="color: #000000">;
<span style="color: #008080">var_dump(<span style="color: #800080">$tree<span style="color: #000000">);
<span style="color: #800080">$dep=TreeDepth(<span style="color: #800080">$tree<span style="color: #000000">);
<span style="color: #008080">var_dump(<span style="color: #800080">$dep); (编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|