File tree 2 files changed +69
-0
lines changed
2 files changed +69
-0
lines changed Original file line number Diff line number Diff line change
1
+ package classes ;
2
+
3
+ /**
4
+ * Created by fishercoder1534 on 10/5/16.
5
+ */
6
+ public class TreeLinkNode {
7
+ public int val ;
8
+ public TreeLinkNode left , right , next ;
9
+ public TreeLinkNode (int x ) { val = x ;}
10
+ }
Original file line number Diff line number Diff line change
1
+ package hard ;
2
+ import classes .TreeLinkNode ;
3
+ /**
4
+ * Created by fishercoder1534 on 10/5/16.
5
+ */
6
+ public class PopulatingNextRightPointersinEachNodeII {
7
+ //copied this post: https://discuss.leetcode.com/topic/1106/o-1-space-o-n-complexity-iterative-solution
8
+ //very clever and concise to make it in O(1) space
9
+
10
+ //based on level order traversal
11
+ public static void connect (TreeLinkNode root ) {
12
+
13
+ TreeLinkNode head = null ; //head of the next level
14
+ TreeLinkNode prev = null ; //the leading node on the next level
15
+ TreeLinkNode cur = root ; //current node of current level
16
+
17
+ while (cur != null ) {
18
+
19
+ while (cur != null ) { //iterate on the current level
20
+ //left child
21
+ if (cur .left != null ) {
22
+ if (prev != null ) {
23
+ prev .next = cur .left ;
24
+ } else {
25
+ head = cur .left ;
26
+ }
27
+ prev = cur .left ;
28
+ }
29
+ //right child
30
+ if (cur .right != null ) {
31
+ if (prev != null ) {
32
+ prev .next = cur .right ;
33
+ } else {
34
+ head = cur .right ;
35
+ }
36
+ prev = cur .right ;
37
+ }
38
+ //move to next node
39
+ cur = cur .next ;
40
+ }
41
+
42
+ //move to next level
43
+ cur = head ;
44
+ head = null ;
45
+ prev = null ;
46
+ }
47
+
48
+ }
49
+
50
+ public static void main (String ...args ){
51
+ TreeLinkNode root = new TreeLinkNode (1 );
52
+ root .left = new TreeLinkNode (2 );
53
+ root .right = new TreeLinkNode (3 );
54
+ root .left .left = new TreeLinkNode (4 );
55
+ root .left .right = new TreeLinkNode (5 );
56
+ root .right .right = new TreeLinkNode (7 );
57
+ connect (root );
58
+ }
59
+ }
You can’t perform that action at this time.
0 commit comments