java单链表反转


class Node{
    public int data;
    public Node next = null;
}

public class Test2 {

    public static Node rev(Node head){
        Node pre = head;
        head = head.next;
        pre.next = null;
        while (head != null){
            Node next = head.next;
            head.next = pre;
            pre = head;
            head = next;
        }
        return pre;

    }
    
    public static void main(String[] args) {

        Node n1 = new Node();
        n1.data= 3;
        Node n2 = new Node();
        n2.data= 5;
        Node n3 = new Node();
        n3.data= 7;
        Node n4 = new Node();
        n4.data= 9;

        n1.next = n2;
        n2.next = n3;
        n3.next = n4;
        n4.next = null;

        Node revList = rev(n1);

        System.out.println(revList);
    }
}

你可能感兴趣的:(算法)