剑指offer-13-反转链表
来源:互联网 发布:阿里云关机还收费吗 编辑:程序博客网 时间:2024/06/05 15:15
题目描述:输入一个链表,反转链表后,输出链表的所有元素。
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public
class
Solution {
public
ListNode ReverseList(ListNode head) {
if
(head==
null
)
return
null
;
//head为当前节点,如果当前节点为空的话,直接返回null;
ListNode pre =
null
;
ListNode next =
null
;
//当前节点是head,pre为当前节点的前一节点,next为当前节点的下一节点
//需要pre和next的目的是让当前节点从pre->head->next1->next2变成pre<-head next1->next2
//即pre让节点可以反转所指方向,但反转之后如果不用next节点保存next1节点的话,此单链表就此断开了
//所以需要用到pre和next两个节点
//1->2->3->4->5
//1<-2<-3 4->5
while
(head!=
null
){
//做循环,如果当前节点不为空的话,始终执行此循环,此循环的目的就是让当前节点从指向next到指向pre
//如此就可以做到反转链表的效果
//先用next保存head的下一个节点的信息,保证单链表不会因为失去head节点的原next节点而就此断裂
next = head.next;
//保存完next,就可以让head从指向next变成指向pre了,代码如下
head.next = pre;
//head指向pre后,就继续依次反转下一个节点
//让pre,head,next依次向后移动一个节点,继续下一次的指针反转
pre = head;
head = next;
}
//如果head为null的时候,pre就为最后一个节点了,但是链表已经反转完毕,pre就是反转后链表的第一个节点
//直接输出pre就是我们想要得到的反转后的链表
return
pre;
}
}
阅读全文
0 0
- 剑指offer-13-反转链表
- 剑指offer:反转链表
- 剑指offer--反转链表
- 剑指offer--反转链表
- 剑指Offer-反转链表
- 《剑指offer》反转链表
- 剑指 offer:反转链表
- 剑指offer-反转链表
- 剑指offer 反转链表
- 剑指offer-反转链表
- 剑指offer:反转链表
- [剑指offer]反转链表
- 《剑指offer》-反转链表
- 剑指Offer:反转链表
- 剑指offer----反转链表
- 剑指offer|反转链表
- 《剑指offer》反转链表
- 【剑指offer】反转链表
- ORA-28040: No matching authentication protocol
- React Native学习笔记(3)--TextInput组件
- HTML5基础知识
- Tensorflow-基本操作基本知识
- 接口到底有什么用
- 剑指offer-13-反转链表
- 微信开发--分享到朋友圈和发送给好友
- 2009-2010 ACM-ICPC, NEERC, Southern Subregional Contest B kakuro
- java学习划重点第二部分
- unity学习日记:shader(着色器)学习中的一些概念
- OpenCV图像边缘检测(sobel算法)
- 【OpenGL】gluLookAt()和gluPerspective()的区别
- spring之再学习(1)
- javascript学习(十)— 高阶函数:map/reduce,filter,sort