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;
}

给TA打赏
共{{data.count}}人
人已打赏
PHP技术

Perfex CRM - 客户关系和项目管理系统

2018-5-26 0:17:20

PHP技术

一个中高级PHP工程师所应该具备的能力

2018-7-2 10:53:16

    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索