題目描述:
給定乙個完美二叉樹,其所有葉子節點都在同一層,每個父節點都有兩個子節點。二叉樹定義如下:
struct node
填充它的每個 next 指標,讓這個指標指向其下乙個右側節點。如果找不到下乙個右側節點,則將 next 指標設定為 null。
初始狀態下,所有 next 指標都被設定為 null。
示例:
輸入:', got 'eof' at end of input: …":"1","left":' at position 53: …t":null,"val":4}̲,"next":null,"r…id」:「4」,「left」:null,「next」:null,「right」:null,「val」:5},「val」:2},「next」:null,「right」:', got 'eof' at end of input: …":"5","left":,「next」:null,「right」:,「val」:3},「val」:1}
輸出:', got 'eof' at end of input: …":"1","left":', got 'eof' at end of input: …:null,"next":', got 'eof' at end of input: …:null,"next":,「right」:null,「val」:6},「right」:null,「val」:5},「right」:null,「val」:4},「next」:', got 'eof' at end of input: …":"7","left":,「next」:null,「right」:' at position 9: ref":"6"}̲,"val":3},"righ…ref」:「4」},「val」:2},「next」:null,「right」:,「val」:1}
emm,使用bfs即可
/*
// definition for a node.
class node
public node(int _val,node _left,node _right,node _next)
};*/
class
solution
root.next = null;
queue
queue =
newlinkedlist
<
>()
; queue.
offer
(root)
;while
(!queue.
isempty()
)if(last.right != null)
if(i !=0)
} pre.next = null;
}return root;
}}
但是題目要求是常數空間,因此就有點難了,這個
看看別人實現的演算法:就是厲害
思路簡單,而且常數空間複雜度
哎
class
solution
connect
(root.left)
;connect
(root.right)
;return root;
}}
填充每個節點的下乙個右側節點指標
給定乙個完美二叉樹,其所有葉子節點都在同一層,每個父節點都有兩個子節點。二叉樹定義如下 public class node填充它的每個 next 指標,讓這個指標指向其下乙個右側節點。如果找不到下乙個右側節點,則將 next 指標設定為 null。初始狀態下,所有 next 指標都被設定為 null...
116 填充每個節點的下乙個右側節點指標
給定乙個完美二叉樹,其所有葉子節點都在同一層,每個父節點都有兩個子節點。二叉樹定義如下 struct node 填充它的每個 next 指標,讓這個指標指向其下乙個右側節點。如果找不到下乙個右側節點,則將 next 指標設定為 null。初始狀態下,所有 next 指標都被設定為 null。示例 你...
116 填充每個節點的下乙個右側節點指標
將每個節點與右邊的節點建立next關係,你只能使用常量級額外空間。使用遞迴解題也符合要求,本題中遞迴程式占用的棧空間不算做額外的空間複雜度。兩種方法,bfs和遞迴 方法一 遞迴 class solution def connect self,root def dfs root if not root...