[PHP]算法- 二叉树的深度的PHP实现
2018-10-08 21:57
351 查看
二叉树的深度: 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 思路: 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
<?php class 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);
相关文章推荐
- 【LeetCode-面试算法经典-Java实现】【111-Minimum Depth of Binary Tree(二叉树的最小深度)】
- [PHP] 算法-二叉树的子结构判断的PHP实现
- 二叉树深度优先(DFS)和广度优先(BFS)算法的非递归实现
- PHP实现二叉树的深度优先与广度优先遍历方法
- [PHP] 算法-镜像二叉树的PHP实现
- 【LeetCode-面试算法经典-Java实现】【111-Minimum Depth of Binary Tree(二叉树的最小深度)】
- [PHP]算法-二叉树中和为某一值的路径的PHP实现
- 【LeetCode-面试算法经典-Java实现】【104-Maximum Depth of Binary Tree(二叉树的最大深度)】
- [C/C++] 先序建立二叉树| 先序、中序、后序遍历二叉树| 求二叉树深度、节点数、叶节点数 算法实现
- 【LeetCode-面试算法经典-Java实现】【104-Maximum Depth of Binary Tree(二叉树的最大深度)】
- PHP实现二叉树的深度优先与广度优先遍历方法
- 二叉树的最大深度算法面试题-leetcode学习之旅(3)
- 二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 二叉树及按层遍历的算法实现
- php实现先序、中序、后序遍历二叉树
- 二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 【转】微博URL短网址生成算法原理及(java版、php版实现实例)
- 用PHP实现URL转换短网址的算法示例
- PHP 实现 一致性哈希 算法(转的)
- 2013-03-17---二叉树递归,非递归实现(附代码)深度,叶子节点数量,逐行打印二叉树