22 層次遍歷

2021-08-30 22:08:44 字數 1067 閱讀 5128

題目描述:

昨晚沒寫出來,但是把思路給理出來了,今天照著昨晚的思路,很快寫出來了,但是當我覺得更好的時候,又改了一下,於是就過去兩個小時了,

思路:首先我是使用兩個佇列,乙個佇列專門用來取出下一層的節點,而另乙個佇列用來取值,放入到list中,注意的是這個list的型別也是list,這個過程中最長的時間就是qu2 = qu1,一開始我以為的是賦值,也就直接這麼寫了,哪知道這是賦位址,就是說qu1彈出,qu2也會彈出,這個bug找的真久,以後需要注意點,因此我將qu2的賦值放在了裡面

排名靠前的**:發現最後的反轉有異曲同工之妙,哈哈哈,一開始我是迴圈的,後來想著優化就把list直接呼叫api進行反轉了。

class solution 

list> result = new arraylist<>();

queuelist = new linkedlist<>();

list.add(root);

while (list.size() != 0)

if (cur.right != null)

}result.add(in);

}collections.reverse(result);

return result;}}

LeetCode 102 層次遍歷

一 思路 這道題使用的是二叉樹的廣度優先遍歷,也就是層次遍歷。與單純的層次遍歷不同的地方在於,這個問題要求返回的遍歷結果是乙個二維陣列,一行代表樹的一層。但是總的思路還是和層次遍歷沒有區別。為了知道二叉樹中每乙個節點位於書的哪一層的問題,需要標識每乙個節點所在的層數,並根據層次遍歷時的節點,對其子節...

演算法設計周記(八) 層次遍歷

二叉樹的層次遍歷問題 層次遍歷的問題本質是廣度優先搜尋,然而此題不僅需要按層訪問,還需要對不同的層次做出區分。這裡既然要以陣列的形式作為返回值,就直接考慮按陣列長度來區分層次。definition for a binary tree node.struct treenode class soluti...

第十周 層次遍歷演算法的驗證

檔名稱 ouyangdingtian.cpp 作 者 王百琛 完成日期 2017年11月2日 版 本 號 v1.0 問題描述 層次遍歷演算法的驗證 輸入描述 一棵樹 程式輸出 先序,中序,後序演算法的三種輸出 樹的演算法庫的引用部分 btree.h btree.cpp include include...