反转链表

Posted ztqup666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反转链表相关的知识,希望对你有一定的参考价值。

反转链表

  

  题目描述

    输入一个链表,反转链表后,输出新链表的表头。
 
 
   思路:目的是要将链表反转,但是单链表只有后节点,没有前节点。我可以手动创建一个辅助的前节点来帮助反转链表。
    
 1     public ListNode ReverseList(ListNode head) {
 2         if(head==null||head.next==null) return head;
 3         //辅助的前节点
 4         ListNode pre = null;
 5         //用来记录当前节点的后节点
 6         ListNode next = null;
 7         while(head!=null){
 8             //先将后节点信息保存下来
 9             next = head.next;
10             //将现节点的后节点反转
11             head.next = pre;
12             //迭代变换现节点和前节点
13             pre = head;
14             head = next;
15         }
16         //当最终现节点为null时,终止循环,此时的前节点,正是新链表的表头。
17         return pre;
18     }

 

 

以上是关于反转链表的主要内容,如果未能解决你的问题,请参考以下文章

如何链表反转

反转链表

c语言,链表的反转,请写出代码,并讲解下,谢了!!!!!

代码的鲁棒性:反转链表

Offer[24] 反转链表

初级--04---链表反转----链表实现栈队列双端队列