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();
 
    }
 
}
上一篇下一篇

猜你喜欢

热点阅读