【剑指offer】面试题24:反转链表(Java 实现)

输入一个链表,反转链表后,输出新链表的表头。

代码:

package offer;
class Node4
{
    int val;
    Node4 next = null;
    Node4(int val)
    {
        this.val = val;
    }
}
public class ti24 {
    public static Node4 ReverseList(Node4 head)
    {
        if(head==null||head.next==null)
        {
            return head;
        }
        Node4 pre = null,node = head,reverse = null;
        while(node!=null)
        {
            Node4 Nnext = node.next;
            if(node.next==null)
            {
                reverse = node;
            }
            node.next = pre;
            pre = node;
            node = Nnext;
        }
        return reverse;
    }
    public static void main(String[] args)
    {
        Node4 node1 = new Node4(1);
        Node4 node2 = new Node4(2);
        Node4 node3 = new Node4(3);
        Node4 node4 = new Node4(4);
        Node4 node5 = new Node4(5);
        node1.next = node2;
        node2.next = node3;
        node3.next = node4;
        node4.next = node5;
        Node4 head = ReverseList(node1);
        while(head!=null)
        {
            System.out.println(head.val);
            head = head.next;
        }
    }
}
 

你可能感兴趣的:(剑指offer)