倒装链表

倒置链表
class Node
{
	public int data;
	public Node next;
	public Node(int data)
	{
		this.data = data;
	}
}
public class Main
{
	public static void reverse(Node head)
	{
		System.out.println("Reverse()");
		Node p1 = head.next;
		Node p2 = head.next;
		head.next = null;
		while(p1 != null)
		{
			p2 = p1.next;
			p1.next = head.next;
			head.next = p1;
			p1 = p2;
		}
	}
	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
		// TODO Auto-generated method stub
		Node head = new Node(0);
		Node node1 = new Node(1);
		Node node2 = new Node(2);
		Node node3 = new Node(3);
		Node node4 = new Node(4);
		head.next = node1;
		node1.next = node2;
		node2.next = node3;
		node3.next = node4;
		
		Node node = head.next;
		while(node != null)
		{
			System.out.println(node.data);
			node = node.next;
		}
		
		reverse(head);
		
		node = head.next;
		while(node != null)
		{
			System.out.println(node.data);
			node = node.next;
		}
	}

}