二叉樹的層次遍歷 (BFS實現)

2021-10-09 04:39:27 字數 858 閱讀 1687

給定乙個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷)

例如:給定二叉樹 [3,9,20,null,null,15,7],

返回其自底向上的層次遍歷為:

1、結果使用linkedlist是為了頭插時效率高一點;

2、遍歷使用queue是使用佇列fifo的特點;

3、因為結果需要自底向上的層次遍歷,所以使用頭插法;

4、bfs遍歷如下圖;

//bfs實現

public list

>

bfs(treenode root)

//如果當前節點有右節點,則左節點入隊

if(cur.right != null)

size --;}

//將每一層的遍歷結果新增到最後的結果中(頭插法)

result.

add(

0, temp);}

return result;

}}

二叉樹樹的層次遍歷實現

二叉樹的所有的操作基本上都是跟遍歷相關的,二叉樹的深度遍歷 先序 中序 後序 都設計棧的操作,但是二叉樹的廣度搜尋 層次遍歷 用到的就是佇列的操作。注意一點,二叉樹的層次的遍歷要得到的結果是把所有的資訊放到乙個一維的陣列中,還是放到乙個二維的陣列中。vectorprintfromtoptobotto...

層次遍歷二叉樹

問題 假定根節點位於第0層 1.層次遍歷二叉樹 每層換行分開 2.層次遍歷二叉樹指定的某層 本文 例如 上圖中1.123 4567 82.第三層 78可以看出得出第二問的解,第一問迎刃而解了,所以從問題二下手 1.層次遍歷二叉樹指定的某層 可以得出這樣的乙個結論 遍歷二叉樹的第k層,相當於遍歷二叉樹...

二叉樹層次遍歷

題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。思路 二叉樹的層次遍歷,利用棧的先進後出的特性。struct treenode class solution res.push back temp while m.empty m中是從左往右入棧,這裡把它反過來,s中是從右往左...