中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

牙克石市| 鄂伦春自治旗| 江都市| 安溪县| 灵川县| 平利县| 河西区| 曲松县| 祥云县| 卢氏县| 石家庄市| 海晏县| 汕头市| 岱山县| 古交市| 神木县| 吉林省| 桓台县| 九寨沟县| 石楼县| 清远市| 永宁县| 玉龙| 如皋市| 闽侯县| 平江县| 玛多县| 东港市| 襄垣县| 普洱| 金川县| 宜兰市| 兴仁县| 湖北省| 宿州市| 迁安市| 美姑县| 佛坪县| 保康县| 玛纳斯县| 江川县|