leetcode筆記 116填充同一層的兄弟節點

2021-09-07 02:45:18 字數 1155 閱讀 7879

題目:

給定乙個二叉樹

struct treelinknode
填充它的每個 next 指標,讓這個指標指向其下乙個右側節點。如果找不到下乙個右側節點,則將 next 指標設定為null

初始狀態下,所有 next 指標都被設定為null

說明:

示例:

給定完美二叉樹,

1

/ \

2 3

/ \ / \

4 5 6 7

呼叫你的函式後,該完美二叉樹變為:

1 -> null

/ \

2 -> 3 -> null

/ \ / \

4->5->6->7 -> null

以下**使用的是非遞迴的思想。使用p來指向當前節點的父節點,使用c來表示當前節點。當p.left=c時,當前節點c.next=p.right.c=c.next;當c!=p.left時,有兩種情況:(1)c=p.right並且p.next!=null,此時c.next=p.next.left,並且c=c.next,p=p.next (2)已經到達了這一層的最右邊節點,從下一層的最左邊節點開始。可以使用乙個first節點儲存下一層的左節點的資訊。

後來我自己在重新寫這個題,我自己的思路是使用層次遍歷的方法,但是在設定next節點的時候不太好設定,而且我自己層次遍歷也有點寫不出來。。。。。。還是先看看遞迴的寫法。

**:public class solution

treelinknode first = root;

while(null != first) else

if(null != cur)

p = p.next;}}

}}執行最快的**:

以下**是遞迴的思想,好像更簡單。

public class solution 

if(root.left !=null)

}connect(root.left);

connect(root.right);

}}

LeetCode116 填充同一層的兄弟節點

給定乙個二叉樹 struct treelinknode填充它的每個 next 指標,讓這個指標指向其下乙個右側節點。如果找不到下乙個右側節點,則將 next 指標設定為null。初始狀態下,所有 next 指標都被設定為null。說明 示例 給定完美二叉樹,1 2 3 4 5 6 7呼叫你的函式後,...

11 6學習筆記

優點 1 有序性。2 紅黑樹結構。效率比較高,很多操作都可以在logn的時間複雜度下實現。缺點 空間佔用率高。紅黑樹雖然提高了執行效率,但是每乙個節點都需要額外儲存父節點 孩子節點以及紅 黑性質,使得每乙個節點都需要占用大量空間。適用場合 對於有順序要求的問題,map更加高效。優點 由於內部實現為雜...

leetcode 1105 填充書架

附近的家居城 你買回了一直心儀的可調節書架,打算把自己的書都整理到新的書架上。你把要擺放的書 books 都整理好,疊成一摞 從上往下,第 i 本書的厚度為 books i 0 高度為 books i 1 按順序 將這些書擺放到總寬度為 shelf width 的書架上。先選幾本書放在書架上 它們的...