反转链表 题源:力扣
package luogu;
import java.util.ArrayList;
import java.util.List;
public class algorithm2 {
static class ListNode{
int val;
ListNode next;
public ListNode(int val, ListNode next) {
this.val = val;
this.next = next;
}
}
public static ListNode iterate(ListNode head)
{
ListNode prev=null,next;
ListNode curr=head;
while(curr!=null) {
next = curr.next;
curr.next = prev;
prev = curr;
curr = next;
}
return prev;
}
public static void main(String[] args) {
ListNode node5=new ListNode(5,null);
ListNode node4=new ListNode(4,node5);
ListNode node3=new ListNode(3,node4);
ListNode node2=new ListNode(2,node3);
ListNode node1=new ListNode(1,node2);
// while (node1!=null) {
// System.out.println(node1.val);两个循环测试用的
// node1=node1.next;
// }
ListNode node=iterate(node1);
while (node!=null)
{
System.out.println(node.val);
node=node.next;
}
}
}
反转前:
反转后: