26输入一个链表,反转链表后,输出链表的所有元素。

Posted olive_gyr

tags:

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

 输入一个链表,反转链表后,输出链表的所有元素。

 

思路:

 ListNode next = null;//用来保存待反序的第一个节点(head 和 next节点)

ListNode pre = null;//用来保存已经反序的第一个结点

 

next = head.next;//首先记录当前节点的下一个节点,(保存起来)

//先用next保存head的下一个节点的信息,保证单链表不会因为失去head节点的原next节点而就此断裂

head.next = pre;//让当前节点指向前一个节点,因为要反序

//保存完next,就可以让head从指向next变成指向pre了

 

pre = head;//让前一个节点值,取代当前的节点值。因为要继续向下走

//head指向pre后,就继续依次反转下一个节点

 

head = next;//让下一个节点,取代当前节点

 //让pre,head,next依次向后移动一个节点,继续下一次的指针反转

 1 /*
 2 public class ListNode {
 3     int val;
 4     ListNode next = null;
 5 
 6     ListNode(int val) {
 7         this.val = val;
 8     }
 9 }*/
10 public class Solution {
11     public ListNode ReverseList(ListNode head) {
12     ListNode pre = null;
13     ListNode next = null;
14     while (head != null) {
15         next = head.next;
16         head.next = pre;
17         pre = head;
18         head = next;
19     }
20     return pre;
21 }
22 }

c++代码:

 

以上是关于26输入一个链表,反转链表后,输出链表的所有元素。的主要内容,如果未能解决你的问题,请参考以下文章

剑指Offer-反转链表

N15_反转链表后,输出新链表的表头。

算法:反转链表。

链表反转链表

反转链表

反转链表