二叉樹層次遍歷的另一種思想

2021-09-26 21:13:06 字數 306 閱讀 8277

昨天刷題的時候,刷到乙個關於二叉樹層次遍歷的題,一直不理解為什麼二叉樹應用這麼廣泛,因為二叉樹的英文名是binary tree(二進位制數),讓我覺得不解。

我發現,在二叉樹的層次遍歷中,每個層次的節點 都可以通過乙個層次位的二進位制數表示(根節點為0層),比如一顆滿二叉樹,從根節點到第三層要經過三次分叉,每次分叉有兩個選擇,我們假設左分叉為0,右分叉為1,則第三層的節點從左到右的二進位制表示為:

轉為10進製 則為0-7 的8(2的三次方)個節點,

由此  我們可用寫個迴圈 for(int i=0;i<(2的層次次方);i++) 來遍歷此層次的所有節點。

一種二叉樹遍歷方法

偽 如下 inorder tree walk x y x print x.key x x.left while y nil y y.right while y x while x nil print x.key x x.left while x.right nil x x.p x x.right p...

層次遍歷二叉樹

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

二叉樹層次遍歷

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