您的位置:首页 > Web前端

剑指offer_链表逆置

2017-09-07 11:58 183 查看
/*
反转链表并输出反转后链表的头结点
与从尾到头打印链表还不一样,打印不需要改变链表结构
初步思路:重建链表,与原来的反向,可行吗?将节点从头到尾记录在数组或栈中,从尾到头连接起来,但是这样就成了双向链表

剑指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!");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  剑指offer