php如何实现二叉树的深度计算(附代码)

php如何实现二叉树的深度计算(附代码)

内容导读

收集整理的这篇技术教程文章主要介绍了php如何实现二叉树的深度计算(附代码),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1586字,纯文字阅读大概需要3分钟

内容图文

本篇文章给大家带来的内容是关于php如何实现二叉树的深度计算(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

二叉树的深度:
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

思路:

1.非递归层序遍历
2.使用辅助队列,根结点先入队列
3. 循环判断队列是否为空,如果不为空就继续循环队列里面的每个结点
4. 循环队列时,当前当前结点出队列,把该结点的左右孩子入队列

TreeDepth(tree)

if !tree return 0

array_push(queue,tree);

depth=0

while(!empty(queue)){



++depth



for i=0;i<queue.size;i++





node=array_pop(queue)





array_push(queue,node->left);





array_push(queue,node->right);

return depth
<?phpclass TreeNode{

var $val;

var $left = NULL;

var $right = NULL;

function __construct($val){



$this->val = $val;

}
 }function TreeDepth($tree){



if(!$tree) return 0;



$queue=array();



array_push($queue,$tree);//在数组最后添加元素



$depth=0;



while(!empty($queue)){







$depth++;







$size=count($queue);









for($i=0;$i<$size;$i++){











$node=array_shift($queue);//非常重要 删除第一个元素











if($node->left){















array_push($queue,$node->left);











}












 if($node->right){















array_push($queue,$node->right);











}








 }




 }





return $depth;}$node1=new TreeNode(1);$node2=new TreeNode(2);$node3=new TreeNode(3);$node4=new TreeNode(4);$node5=new TreeNode(5);$node6=new TreeNode(6);$node7=new TreeNode(7);$tree=$node1;$node1->left=$node2;$node1->right=$node3;$node2->left=$node4;$node2->right=$node5;$node4->right=$node6;$node3->left=$node7;var_dump($tree);$dep=TreeDepth($tree);var_dump($dep);

以上就是php如何实现二叉树的深度计算(附代码)的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php如何实现二叉树的深度计算(附代码)全部内容,希望文章能够帮你解决php如何实现二叉树的深度计算(附代码)所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com