/*
反转链表并输出反转后链表的头结点
与从尾到头打印链表还不一样,打印不需要改变链表结构
初步思路:重建链表,与原来的反向,可行吗?将节点从头到尾记录在数组或栈中,从尾到头连接起来,但是这样就成了双向链表
剑指offer:在原链表上进行指针操作即可
*/
class ReverseList
{
public static void reverseList(ListNode head)
{
ListNode reverseHead=null;//反转后的头结点
ListNode node=head;//当前要反转的结点
ListNode prev=null;//当前结点的前驱
while (node!=null)
{
ListNode next=node.next;//记录后继结点,便于循环
//若当前结点是尾结点,则将其作为reverseHead返回
if (next==null)
{
reverseHead=node;
}
//反转
node.next=prev;
//后移,以便进行下一个节点的反转
prev=node;
node=next;
}
return reverseHead;
}
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}