php教程

超轻量级php框架startmvc

PHP实现从上往下打印二叉树的方法

更新时间:2020-03-26 04:57:25 作者:startmvc
本文实例讲述了PHP实现从上往下打印二叉树的方法。分享给大家供大家参考,具体如下:问

本文实例讲述了PHP实现从上往下打印二叉树的方法。分享给大家供大家参考,具体如下:

问题

从上往下打印出二叉树的每个节点,同层节点从左至右打印。

解决思路

每层树从左到右打印,所以需要将节点的左右子树存起来,因为先进先出,所以用队列。

实现代码


/*class TreeNode{
 var $val;
 var $left = NULL;
 var $right = NULL;
 function __construct($val){
 $this->val = $val;
 }
}*/
function PrintFromTopToBottom($root)
{
 $queueVal = array();
 $queueNode = array();
 if($root == NULL)
 return $queueVal;
 array_push($queueNode, $root);
 while(!empty($queueNode)){
 $node = array_shift($queueNode);
 if($node->left != NULL)
 array_push($queueNode,$node->left);
 if($node->right != NULL)
 array_push($queueNode,$node->right);
 array_push($queueVal,$node->val);
 }
 return $queueVal;
}

PHP 从上往下 打印 二叉树