首页 > 代码库 > 26、输入一个链表,反转链表后,输出链表的所有元素。
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、输入一个链表,反转链表后,输出链表的所有元素。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。