package Test;
public class listReverse {
public static void main(String[] args){
listNode l1 = new listNode(1);
listNode l2 = new listNode(2);
listNode l3 = new listNode(3);
l1.next = l2;
l2.next = l3;
listNode test = l1;
while(test!=null){
int a = test.number;
System.out.print(a);
test = test.next;
}
listReverse lr = new listReverse();
listNode s =lr.reverse(l1);
listNode tes = s;
while(tes!=null){
int a = tes.number;
System.out.print(a);
tes = tes.next;
}
}
public listNode reverse(listNode node){
listNode headNode = null;
listNode preNode = null;
listNode curNode = node;
listNode nexNode = null;
if(curNode == null){
return null;
}
while(curNode!=null) {
nexNode = curNode.next;
if (nexNode == null) {
headNode = curNode;
}
curNode.next = preNode;
preNode = curNode;
curNode = nexNode;
}
return headNode;
}
}
package Test;
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}
public class addnumber{
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode temp = new ListNode(-1);
ListNode head = temp;
int count = 0;
while(l1 != null && l2 != null){
head.next = new ListNode((l1.val+l2.val+count)%10);
head = head.next;
count = (l1.val+l2.val+count)/10;
l1 = l1.next;
l2 = l2.next;
}
while(l1 != null){
head.next = new ListNode((l1.val+count)%10);
head = head.next;
count = (l1.val+count)/10;
l1 = l1.next;
}
while(l2 != null){
head.next = new ListNode((l2.val+count)%10);
head = head.next;
count = (l2.val+count)/10;
l2 = l2.next;
}
if(count == 1){
head.next = new ListNode(1);
head = head.next;
}
return temp.next;
}
}