-
Notifications
You must be signed in to change notification settings - Fork 1
/
Elite Day-9 Program-4.txt
86 lines (65 loc) · 2.16 KB
/
Elite Day-9 Program-4.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
Ms Tejaswi is given a Triply Linked list (TLL), The Triply linked list contains
three pointers left, right and down.
The TLL is created in multi level format as follows:
- In each level only one Node will be connected to another Node
through down pointer.
- For the remaining Nodes in that level, the down pointer ponits to null.
Your task is to convert the given TLL to DLL (Doubly Linked List) as follows:
- The priority for processing the TLL pointers are
1. down, 2.right, 3.left
- You need to follow Depth First approach, and convert the TLL to DLL
You need to implement the Solution Class:
- public Node convertToDLL(Node head) : return the head node.
NOTE: All the levels should be processed first, before you process the right node.
NOTE:
- The numbers printed on the board in each row and each column are
in increasing order. And all the numbers are unique.
Input Format:
-------------
Single line comma',' separated data of the list, integer
Output Format:
--------------
Print the modified doubly linked list as given sample.
Sample Input-1:
---------------
1,2,3,null,null,4,5,6,null,null,7,8,9,null,null,10,11,12
Sample Output-1:
----------------
1->2->4->5->7->8->10->11->12->9->6->3
Explanation:
------------
Please look the hint
Sample Input-2:
---------------
1,2,3,4,5,null,null,null,6,7,8,9,null,null,10,11
Sample Output-2:
----------------
1->2->3->6->7->10->11->8->9->4->5
/*
//Structure of the node in Triply Linked List(TLL)
class Node {
public int val;
public Node left;
public Node right;
public Node down;
}
*/
class Solution{
public Node convertToDLL(Node head) {
//implement this method
Node curr = head;
while(curr!=null){
if(curr.down!=null){
Node rightNode = curr.right;
curr.right = convertToDLL(curr.down);
while(curr.right!=null){
curr = curr.right;
}
curr.right = rightNode;
}else{
curr = curr.right;
}
}
return head;
}
}