91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中如何實現按之字形順序打印二叉樹

發布時間:2021-06-03 11:21:53 來源:億速云 閱讀:112 作者:小新 欄目:開發技術

這篇文章主要介紹了PHP中如何實現按之字形順序打印二叉樹,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

本文實例講述了PHP實現按之字形順序打印二叉樹的方法。分享給大家供大家參考,具體如下:

問題

請實現一個函數按照之字形打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右至左的順序打印,第三行按照從左到右的順序打印,其他行以此類推。

解決思路

使用兩個棧

實現代碼

<?php
/*class TreeNode{
  var $val;
  var $left = NULL;
  var $right = NULL;
  function __construct($val){
    $this->val = $val;
  }
}*/
function MyPrint($pRoot)
{
  if($pRoot == NULL)
    return [];
  $current = 0;
  $next  = 1;
  $stack[0] = array();
  $stack[1] = array();
  $resultQueue = array();
  array_push($stack[0], $pRoot);
  $i = 0;
  $result = array();
  $result[0]= array();
  while(!empty($stack[0]) || !empty($stack[1])){
    $node = array_pop($stack[$current]);
    array_push($result[$i], $node->val);
    //var_dump($resultQueue);echo "</br>";
    if($current == 0){
      if($node->left != NULL)
        array_push($stack[$next], $node->left);
      if($node->right != NULL)
        array_push($stack[$next], $node->right);
    }else{
      if($node->right != NULL)
        array_push($stack[$next], $node->right);
      if($node->left != NULL)
        array_push($stack[$next], $node->left);
    }
    if(empty($stack[$current])){
      $current = 1-$current;
      $next  = 1-$next;
      if(!empty($stack[0]) || !empty($stack[1])){
        $i++;
        $result[$i] = array();
      }
    }
  }
  return $result;
}

感謝你能夠認真閱讀完這篇文章,希望小編分享的“PHP中如何實現按之字形順序打印二叉樹”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

阳城县| 黄冈市| 云梦县| 托克托县| 新蔡县| 屏东县| 深州市| 内黄县| 威远县| 名山县| 平乐县| 称多县| 松桃| 武功县| 博罗县| 宜兴市| 麟游县| 阳朔县| 诸暨市| 札达县| 遂川县| 克拉玛依市| 尖扎县| 武夷山市| 乐都县| 扶余县| 桦甸市| 息烽县| 奎屯市| 忻州市| 南和县| 鄂尔多斯市| 兰考县| 项城市| 赣州市| 永新县| 横峰县| 林甸县| 探索| 久治县| 湛江市|