精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

字節一次面試,被二叉樹的層序遍歷捏爆了!

開發 前端
在數據結構與算法中,二叉樹無論是考研、筆試都是非常高頻的考點內容,在二叉樹中,二叉樹的遍歷又是非常重要的知識點,有個小老弟說他字節面試時候二叉樹之字形打印緊張沒寫出來,力扣原題自己還寫過很懊惱,我也回想起自己剛學習時候那段"混亂的"斗爭,今天給大家講講二叉樹的層序遍歷。

[[423620]]

前言

大家好,我是bigsai。

在數據結構與算法中,二叉樹無論是考研、筆試都是非常高頻的考點內容,在二叉樹中,二叉樹的遍歷又是非常重要的知識點,有個小老弟說他字節面試時候二叉樹之字形打印緊張沒寫出來,力扣原題自己還寫過很懊惱,我也回想起自己剛學習時候那段"混亂的"斗爭,今天給大家講講二叉樹的層序遍歷。

前面介紹了二叉排序樹的構造和基本方法的實現,遍歷也是比較重要的一環,并且二叉樹的層序遍歷也是bfs的最簡單情況,這里我就將二叉樹的層序遍歷以及??紗栴}給大家分享一下。

在了解二叉樹的遍歷之前,需要具備數據結構與算法有隊列、遞歸、棧、二叉樹,這些內容咱們前面都有講過,有這方面知識欠缺的同學可以往前翻一翻看一看!

層序遍歷

層序遍歷,聽名字也知道是按層遍歷。一個節點有左右節點,按層處理就是當前層兄弟節點的優先級要大于子節點處理的優先級,所以就是要將子節點放到后面處理,這就適合隊列這個數據結構用來存儲。

對于隊列,先進先出。從root節點push到隊列,那么隊列中先出來的順序是第二層的左右(假設都有),第二層每個節點執行的時候按照左右順序添加到隊列,第三層的節點就會有序的放到最后面……按照這樣的規則就能得到一個層序遍歷的順序。

實現的代碼也很容易理解:

  1. public int[] levelOrder(TreeNode root) { 
  2.         int arr[]=new int[10000]; 
  3.         int index=0; 
  4.         Queue<TreeNode>queue=new ArrayDeque<>(); 
  5.         if(root!=null
  6.             queue.add(root); 
  7.         while (!queue.isEmpty()){ 
  8.             TreeNode node=queue.poll(); 
  9.             arr[index++]= node.val; 
  10.             if(node.left!=null
  11.                 queue.add(node.left); 
  12.             if(node.right!=null
  13.                 queue.add(node.right); 
  14.  
  15.         } 
  16.         return Arrays.copyOf(arr,index); 
  17.     } 

分層存儲

但是在具體筆試他可能要求你分層存儲,例如力扣的102二叉樹的層序遍歷,要求返回一個List>類型。

這種相比上面一個多了一層邏輯就是每一層數據放到一塊,這個也很容易,最好想到的就是兩個隊列(容器)一層一層遍歷存儲,然后交替,但是兩個隊列(容器)的寫法常常會被面試官嫌棄,很多面試官讓你想想怎么不用兩個容器實現?

不用雙隊列去枚舉結果也很容易,重要的就是先記錄隊列大小size(當前層節點數量),然后執行size次數的枚舉即可,具體代碼為:

  1. public List<List<Integer>> levelOrder(TreeNode root) { 
  2.   List<List<Integer>>list=new ArrayList<List<Integer>>(); 
  3.   if(root==null)return list; 
  4.   Queue<TreeNode>q1=new ArrayDeque<TreeNode>(); 
  5.   q1.add(root); 
  6.   while (!q1.isEmpty()) { 
  7.     int size=q1.size(); 
  8.     List<Integer>value=new ArrayList<Integer>(); 
  9.     for(int i=0;i<size;i++) 
  10.     { 
  11.       TreeNode pNode=q1.poll(); 
  12.       if(pNode.left!=null
  13.         q1.add(pNode.left); 
  14.       if(pNode.right!=null
  15.         q1.add(pNode.right); 
  16.       value.add(pNode.val); 
  17.     } 
  18.     list.add(value); 
  19.   } 
  20.   return list; 

之字形(鋸齒形)打印

除了這個直接層序遍歷,二叉樹還有很高頻的就是之字形遍歷,例如劍指offer32和力扣103 二叉樹的鋸齒形層序遍歷,它的題目要求為:

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

這道題雖然不是難題,但是有點繞,本來隊列這玩意我們就要大腦想一下什么順序,又出來一個之字形(鋸齒形狀),屬實增加的思維邏輯,有不少小伙伴反映當時面試官讓手撕這道題,自己以前明明寫過,但是太緊張自己給自己繞進去了!

其實這個問題也很容易轉化,因為值只是存儲,我們按照老樣子去進行層序遍歷,只不過在遍歷時候通過當前層奇偶數來給它判斷是從左往右存儲到結果中還是從右往左放到結果中。當然,判斷奇數偶數也很容易,可以用變量,也可以用結果List的size()都可。

個人實現的一個樸素代碼為:

  1. public List<List<Integer>> levelOrder(TreeNode root) { 
  2.   List<List<Integer>> value=new ArrayList<>();//存儲到的最終結果 
  3.   if(root==null
  4.     return value; 
  5.   int index=0;//判斷 
  6.   Queue<TreeNode>queue=new ArrayDeque<>(); 
  7.   queue.add(root); 
  8.   while (!queue.isEmpty()){ 
  9.     List<Integer>va=new ArrayList<>();//臨時 用于存儲到value中 
  10.     int len=queue.size();//當前層的數量 
  11.     for(int i=0;i<len;i++){ 
  12.       TreeNode node=queue.poll(); 
  13.       if(index%2==0) 
  14.         va.add(node.val); 
  15.       else 
  16.         va.add(0,node.val); 
  17.       if(node.left!=null
  18.         queue.add(node.left); 
  19.       if(node.right!=null
  20.         queue.add(node.right); 
  21.     } 
  22.     value.add(va); 
  23.     index++; 
  24.   } 
  25.   return value; 

上面實現代碼也僅使用一個隊列,不過這個問題可能有很多更巧妙的解法需要大家自己去挖掘。

結語

二叉樹的層序遍歷是二叉樹內容中較為簡單的內容,但是層序遍歷尤其是之字形遍歷(鋸齒形遍歷)出現的頻率真的太高了,并且最好是掌握比較好的方法不要顯得太臃腫。

不過在實際遇到問題時候,能AC是第一位,然后才是精簡的邏輯和騷氣的代碼,總結一下就是隊列實現層序,巧用size()實現一個容器枚舉,奇偶判斷實現之字形(鋸齒形)遍歷!也還算easy!

二叉樹層序遍歷變種問題不多,掌握上面三個問題基本就夠了,而二叉樹的前序、中序、后序遍歷(遞歸非遞歸)考察非常多,后面會給大家加快梳理總結,敬請期待!

 

責任編輯:武曉燕 來源: bigsai
相關推薦

2020-04-27 07:05:58

二叉樹左子樹右子樹

2022-10-26 23:58:02

二叉樹數組算法

2021-04-20 08:37:14

數據結構二叉樹

2023-05-08 15:57:16

二叉樹數據結構

2021-09-15 07:56:32

二叉樹層次遍歷

2021-03-22 08:23:29

LeetCode二叉樹節點

2021-09-15 07:40:50

二叉樹數據結構算法

2009-08-11 13:29:57

C#二叉樹遍歷

2021-01-13 10:03:36

二叉樹層序遍歷層次遍歷

2021-04-28 20:12:27

數據結構創建

2021-08-17 11:32:33

二叉樹數據結構算法

2021-05-06 17:46:30

二叉樹數據結構

2021-04-19 07:47:42

數據結構二叉樹Tree

2021-07-16 08:57:31

迭代遍歷二叉樹

2021-07-13 11:32:41

二叉樹數據結構算法

2024-01-23 12:54:00

C++編程語言代碼

2021-08-27 11:36:44

二叉樹回溯節點

2021-11-29 10:40:58

二叉樹鏡像節點

2021-09-29 10:19:00

算法平衡二叉樹

2021-12-17 14:26:58

二叉樹節點數量
點贊
收藏

51CTO技術棧公眾號

99久久人妻无码中文字幕系列| 丰满人妻一区二区三区53号| 日韩中文字幕高清| 99精品视频在线观看免费播放 | 丰满少妇乱子伦精品看片| 久久人人爽人人爽人人片av不| 91国产免费观看| 激情图片qvod| 黄上黄在线观看| 国产一区视频导航| **欧美日韩vr在线| 午夜国产小视频| 亚洲国产最新| 日韩免费看网站| 另类小说色综合| 国产黄色大片在线观看| 国产精品私人影院| 久久国产精品高清| 国产成人久久精品77777综合| 国产亚洲一级| 久久99精品视频一区97| 成人无码av片在线观看| 美女福利一区| 欧美一区二区女人| 激情五月亚洲色图| 草美女在线观看| 中文字幕一区二区不卡| 欧美日韩在线精品| 国产香蕉在线观看| 国产麻豆成人传媒免费观看| 国产精品第1页| 欧美另类一区二区| 国产精品久久| 欧美乱妇高清无乱码| 亚洲精品自拍视频在线观看| 国产精品免费不| 精品日产卡一卡二卡麻豆| 天天做天天干天天操| 高清av一区| 欧美性xxxx极品高清hd直播| 人妻少妇精品久久| 亚洲精品白浆| 亚洲欧美激情插| 在线视频不卡国产| av在线日韩国产精品| 久久久www免费人成精品| 久久99热只有频精品91密拍| 黄色片网站免费在线观看| 国产精品资源在线观看| 91免费电影网站| 亚洲影视一区二区| 麻豆精品一区二区综合av| 国产精品一区久久| 久久久久久无码午夜精品直播| 国产精品普通话对白| 久久人人爽人人爽人人片av高清| 国产女人被狂躁到高潮小说| 亚洲午夜精品一区 二区 三区| 久久天天躁狠狠躁夜夜av| 精品一区二区6| 97精品在线| xvideos国产精品| 日韩在线观看视频一区二区| 亚洲成人精选| 久久久久久久久爱| 在线观看精品国产| 小嫩嫩精品导航| 国产不卡av在线免费观看| 无码人妻丰满熟妇精品区| 日本欧美一区二区三区乱码| 国产精品永久免费在线| 91丨porny丨在线中文 | 无码人妻精品一区二区三| 97久久亚洲| 国产视频在线一区二区| 久久美女免费视频| 成人直播大秀| 欧美成人激情视频| 欧美福利视频一区二区| 日韩电影在线观看网站| 成人中文字幕在线观看| 蜜臀av中文字幕| 91社区在线播放| 亚洲国产一区二区三区在线播| 超碰在线免费公开| 午夜精品一区二区三区免费视频 | 瑟瑟视频在线看| 色8久久精品久久久久久蜜| 天天干天天玩天天操| 国产免费区一区二区三视频免费 | 久久成人资源| 欧美videos极品另类| 亚洲午夜精品久久久久久久久| 草草久久久无码国产专区| 草民电影神马电影一区二区| 欧美成人三级电影在线| 精品夜夜澡人妻无码av| 国产精品久久久久无码av| 久久久亚洲影院| 国产偷人爽久久久久久老妇app| 国产一区二区三区在线观看精品| 精品乱码一区| 国产视频在线播放| 色噜噜久久综合| 四虎永久免费观看| 日韩理论电影| 91大神在线播放精品| 国产精品一区二区三区在线免费观看| 99r国产精品| 无码人妻精品一区二区三区99v| 中文字幕乱码中文乱码51精品| 欧美高清精品3d| 国产精品1000部啪视频| 亚洲有吗中文字幕| 国产精品激情自拍| 五月婷婷六月色| 亚洲夂夂婷婷色拍ww47| 午夜免费看毛片| 免费视频国产一区| 久久久久久网站| 国产情侣av在线| 国产日韩三级在线| 久久久久久久久久久视频| 秋霞一区二区三区| 久久精品国产亚洲精品| 国产乡下妇女三片| 久久色视频免费观看| 日韩精品在线观看av| 精品国产鲁一鲁****| 永久免费毛片在线播放不卡| 日韩精品一区二区亚洲av| 成人美女在线观看| 日本aa在线观看| 精品一区二区三区免费看| 日韩中文字幕免费看| 青青草视频在线观看免费| 99久久精品国产精品久久| 日韩av新片网| 91夜夜蜜桃臀一区二区三区| 欧美夫妻性视频| 国内老熟妇对白xxxxhd| 亚洲色大成网站www久久九九| 国内自拍视频网| 狠狠操综合网| 国产精品久久久久久久久免费| 欧洲一区av| 欧美性少妇18aaaa视频| 精品人妻一区二区三区视频| 免费在线亚洲| 欧美日韩一区综合| 成人在线免费电影网站| 一区二区三区高清国产| 这里只有精品999| 国产精品无人区| 男人的天堂最新网址| 99热在线成人| 51国产成人精品午夜福中文下载| 在线电影福利片| 精品国产99国产精品| 欧美精品亚洲精品日韩精品| 91在线视频18| 污污视频网站免费观看| 97精品视频| 成人欧美一区二区三区黑人免费| 538视频在线| 亚洲欧洲偷拍精品| 中文字幕+乱码+中文乱码91| 亚洲欧洲精品一区二区三区| 欧美人与性动交α欧美精品| 亚洲大黄网站| 欧美性xxxx69| 亚洲aⅴ网站| 欧美丰满老妇厨房牲生活| 天天射天天操天天干| 91黄色免费网站| 亚洲xxxx3d动漫| av综合在线播放| 婷婷丁香激情网| 中文字幕一区二区三三| 国产伦精品一区二区三区四区视频| 秋霞伦理一区| 日韩一区二区三区国产| 韩国av永久免费| 日本道精品一区二区三区| 四虎精品免费视频| 97久久超碰精品国产| 色一情一区二区| 国内精品99| 无遮挡亚洲一区| 1204国产成人精品视频| 日本亚洲欧洲色| 2024短剧网剧在线观看| 亚洲人成欧美中文字幕| 国产白浆在线观看| 色狠狠综合天天综合综合| 免费高清在线观看电视| 91久色porny| 亚欧精品在线视频| 日韩av电影天堂| 亚洲精品无码国产| 欧美综合一区| 精品国产福利| 精品视频在线播放一区二区三区 | 极品国产人妖chinesets亚洲人妖 激情亚洲另类图片区小说区 | 视频一区在线播放| 国产精品无码免费专区午夜| 成人3d动漫在线观看| 国产免费一区二区三区| 91麻豆精品一二三区在线| 日韩av电影国产| xxxx视频在线| 久久中文字幕国产| 国产h在线观看| 日韩av在线网页| 成 人 免费 黄 色| 欧美日韩亚洲综合在线| 一级成人黄色片| 亚洲6080在线| 九九热只有精品| 中文字幕一区二区三区精华液 | 国产精品日韩精品欧美在线| a级一a一级在线观看| 国产一区二区三区在线观看免费 | 婷婷开心激情网| 精品国产人成亚洲区| 国产乱淫a∨片免费视频| 在线影视一区二区三区| 中日韩精品视频在线观看| 亚洲视频狠狠干| 四虎永久免费地址| 中文字幕av一区二区三区高| 谁有免费的黄色网址| 久久久久久免费毛片精品| 人妻无码中文久久久久专区| 成人一区二区视频| 亚洲av成人片无码| 国产69精品久久99不卡| www日本在线观看| 国产成人超碰人人澡人人澡| 亚洲色图欧美自拍| 国产综合成人久久大片91| 亚洲欧美aaa| 九色综合狠狠综合久久| 亚洲18在线看污www麻豆 | 亚洲一本视频| 999一区二区三区| 在线成人av| 成人毛片视频网站| 久久先锋资源| 色婷婷成人在线| 国产一区高清在线| 日韩精品――色哟哟| 成人白浆超碰人人人人| 秘密基地免费观看完整版中文 | 精品无码人妻一区二区三区| 亚洲国产精品久久艾草纯爱| 日韩欧美不卡视频| 欧美日韩中文在线观看| 国产99免费视频| 3atv在线一区二区三区| 精品国自产拍在线观看| 亚洲成人av在线| 精品资源在线看| 日韩一区二区福利| 18+激情视频在线| 午夜精品一区二区三区在线播放| 亚洲美女炮图| 国产精品久久久久久久久粉嫩av | 久久99久久99精品蜜柚传媒| 欧美女王vk| 日本成人性视频| 亚洲人成在线影院| 色哟哟精品视频| 国产精品99久久久久久久女警| 天天插天天射天天干| 国产欧美中文在线| 永久免费看黄网站| 欧美日韩亚洲精品一区二区三区| 中文字幕 自拍偷拍| 欧美成人精品3d动漫h| 日本大片在线观看| 久久精品国产精品| 天堂а√在线最新版中文在线| 国产精品久久91| 澳门成人av| 亚洲欧美国产不卡| 韩国亚洲精品| 欧美大尺度做爰床戏| 成人免费观看av| 国产一区二区三区视频播放| 亚洲午夜久久久久中文字幕久| 亚洲成人av网址| 精品av久久707| 麻豆网站视频在线观看| 91精品国产91| 国产一区二区在线观| 欧美乱偷一区二区三区在线| 欧美99久久| 九一精品在线观看| 成人福利电影精品一区二区在线观看| 欧美亚洲色综久久精品国产| 天天av天天翘天天综合网色鬼国产| 一卡二卡在线视频| 亚洲女同性videos| 欧美精品videosex| 国产女人18毛片水18精品| 西野翔中文久久精品字幕| 在线观看三级网站| 男女男精品网站| 日韩 中文字幕| 一片黄亚洲嫩模| 国产精品无码久久av| 在线中文字幕日韩| 日本不卡网站| 鬼打鬼之黄金道士1992林正英| 忘忧草精品久久久久久久高清| 亚洲精品乱码久久久久久自慰 | 国产精品国产三级国产专业不| 亚洲国产一区视频| 国产三级漂亮女教师| 中文字幕国产日韩| 国产伦精品一区二区三区视频金莲| 国产精品swag| 欧美日韩专区| 欧美色图校园春色| 亚洲欧洲日韩在线| 在线免费观看av片| 这里只有精品在线播放| 在线视频cao| 久久99国产精品99久久| 亚洲国产片色| 国产国语老龄妇女a片| 亚洲一区二区三区四区在线观看| 国产三级在线观看视频| 波霸ol色综合久久| 四虎影视国产精品| 三年中文高清在线观看第6集| 日韩av一级电影| 欧美成人另类视频| 欧美性色欧美a在线播放| 精品成人一区二区三区免费视频| 欧美一级高清免费播放| 天堂成人娱乐在线视频免费播放网站 | 黄色网址在线视频| 五月天久久比比资源色| 无码国产色欲xxxx视频| 5566成人精品视频免费| 日韩影视在线观看| 精品www久久久久奶水| 国产午夜精品一区二区三区四区| 无码人妻一区二区三区免费| 亚洲日本欧美日韩高观看| 日本欧美不卡| 亚洲一区二区三区四区中文| 久久99精品国产麻豆不卡| 久久久久久久久久久久久女过产乱| 日韩一区二区在线播放| 伦理av在线| 久久久久久国产精品mv| 日本在线不卡一区| 国产精品免费在线视频| 日韩一区二区在线观看| 日本乱码一区二区三区不卡| 免费在线成人av| 久久成人免费日本黄色| 福利所第一导航| 精品sm在线观看| 欧美日韩免费看片| 正在播放91九色| 成人国产在线观看| 免费的毛片视频| 久久精品视频99| 欧美激情99| 一区二区三区入口| 樱花草国产18久久久久| 天堂在线免费av| 亚洲成人av电影| 无码精品视频一区二区三区| 日本老师69xxx| 国产精品久久久久一区二区三区厕所 | 国产91在线看| 欧产日产国产69| 久久久国产一区二区| 美女呻吟一区| 天天色天天综合网| 欧美日韩国产精品专区| 自拍视频在线网| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 97se亚洲国产综合在线| 中文字幕一区二区三区四区视频| 色综合久久悠悠| 在线视频亚洲专区| 欧美国产日韩在线视频| 色妹子一区二区| 国内高清免费在线视频| 亚洲不卡一卡2卡三卡4卡5卡精品| 国产在线国偷精品产拍免费yy| 国产精品人人人人| 色综合久久中文字幕综合网小说| 国产日产精品_国产精品毛片|