P1-链表反转-迭代
2021-05-04 本文已影响0人
YonchanLew
//第一种方法,迭代
//https://www.bilibili.com/video/BV1hK4y1P7ka?t=341
//反转链表
public class ReverseList {
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;
ListNode next;
ListNode curr = head;
while(curr != null){
next = curr.next;
curr.next = prev;
prev = curr;
curr = next;
}
return prev;
}
public void printList(){
System.out.println(this.val);
ListNode curr = this;
while(curr.next != null) {
System.out.println(curr.next.val);
curr = curr.next;
}
}
}
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);
node1.printList();
ListNode.iterate(node1);
node5.printList();
}
}