其他分享
首页 > 其他分享> > 反转链表(剑指offer)

反转链表(剑指offer)

作者:互联网

反转链表

头插法

思路:

  1. 建立一个头结点newList
  2. 临时节点next保存原头节点head的下一个节点(保存其位置,为了使原头结点指向newList的第一个节点,并且不丢失原头结点head的下一个节点位置的信息)
  3. 断开newList与其下一个节点连接,中间插入原头结点(如此往复,可使新链表为原链表的倒序排列)
  4. 将next保存的信息赋值到head中,以便下次循环使用
  5. 当head为null,原链表遍历结束,退出

图解:

代码实现

public ListNode ReverseList(ListNode head){
    ListNode newList = new ListNode(-1);
    ListNode next;
    
    while(head!=null){
        next = head.next;
        head.next = newList.next;
        newList.next = head;
        head = next;
    }
    return  newList.next;
}

标签:head,ListNode,offer,反转,next,链表,newList,节点
来源: https://www.cnblogs.com/pitaya01/p/15571618.html