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

时间:2022-09-24 10:08:26

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

问题

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

解决思路

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

实现代码

  1. /*class TreeNode{ 
  2.   var $val; 
  3.   var $left = NULL; 
  4.   var $right = NULL; 
  5.   function __construct($val){ 
  6.     $this->val = $val; 
  7.   } 
  8. }*/ 
  9. function PrintFromTopToBottom($root) 
  10.   $queueVal = array(); 
  11.   $queueNode = array(); 
  12.   if($root == NULL) 
  13.     return $queueVal; 
  14.   array_push($queueNode, $root); 
  15.   while(!empty($queueNode)){ 
  16.     $node = array_shift($queueNode); 
  17.     if($node->left != NULL) 
  18.       array_push($queueNode,$node->left); 
  19.     if($node->right != NULL) 
  20.       array_push($queueNode,$node->right); 
  21.     array_push($queueVal,$node->val); 
  22.   } 
  23.   return $queueVal; 

希望本文所述对大家PHP程序设计有所帮助。