題目:
給定乙個二叉樹
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 的書架上。先選幾本書放在書架上 它們的...