File tree 2 files changed +78
-0
lines changed
Data Structures in Java/Level 2/Linked List 2/reverseLL_Recursive
2 files changed +78
-0
lines changed Original file line number Diff line number Diff line change
1
+
2
+ public class Node <T > {
3
+
4
+ T data ;
5
+ Node <T > next ;
6
+
7
+ Node (T data ){
8
+ this .data = data ;
9
+ next = null ;
10
+ }
11
+
12
+ }
Original file line number Diff line number Diff line change
1
+ import java .util .Scanner ;
2
+
3
+ public class ReverseLL {
4
+
5
+
6
+ public static Node <Integer > reverseR (Node <Integer > head ){
7
+ if (head == null || head .next == null ){
8
+ return head ;
9
+ }
10
+
11
+ Node <Integer > finalHead = reverseR (head .next );
12
+ Node <Integer > temp = finalHead ;
13
+ while (temp .next != null ){
14
+ temp = temp .next ;
15
+ }
16
+ temp .next = head ;
17
+ head .next = null ;
18
+ return finalHead ;
19
+ }
20
+
21
+ public static Node <Integer > takeInput ()
22
+
23
+ {
24
+ Node <Integer > head = null , tail = null ;
25
+ Scanner s = new Scanner (System .in );
26
+ int data = s .nextInt ();
27
+
28
+ while (data != -1 ){
29
+ Node <Integer > newNode = new Node <Integer >(data );
30
+ if (head == null ){
31
+ head = newNode ;
32
+ tail = newNode ;
33
+ }else {
34
+ // Node<Integer> temp = head;
35
+ // while(temp.next != null){
36
+ // temp = temp.next;
37
+ // }
38
+ // temp.next = newNode;
39
+ tail .next = newNode ;
40
+ tail = newNode ; // tail = tail.next
41
+ }
42
+ data = s .nextInt ();
43
+ }
44
+ return head ;
45
+ }
46
+
47
+ public static void print (Node <Integer > head ){
48
+
49
+ while (head != null ){
50
+ System .out .print (head .data +" " );
51
+ head = head .next ;
52
+ }
53
+ System .out .println ();
54
+
55
+ }
56
+
57
+
58
+ public static void main (String [] args ) {
59
+ // TODO Auto-generated method stub
60
+ Node <Integer > head = takeInput ();
61
+ head = reverseR (head );
62
+ print (head );
63
+
64
+ }
65
+
66
+ }
You can’t perform that action at this time.
0 commit comments