剑指offer之反转链表(java)
程序员文章站
2022-07-10 13:54:28
...
反转链表
输入一个链表,反转链表后,输出新链表的表头。
/*
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 || head.next == null)
return head;
ListNode p = null;
ListNode q = head;
ListNode s = q.next;
while(q != null){
q.next = p;
//仔细看这个退出条件哟
if(s == null)
break;
p = q;
q = s;
s = s.next;
}
return q;
}
}
我个人觉得这个从尾到头打印链表更值得研究,故这个代码不做解释啦!
https://blog.csdn.net/dream_one_day/article/details/97032156
上一篇: QT的TCP协议
下一篇: Python学习笔记(七)
推荐阅读
-
剑指offer25:复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),结果返回复制后复杂链表的head。
-
剑指offer 剪绳子(动态规划) Java
-
[算法练习-剑指offer]题18.二叉树的镜像(Java)
-
剑指Offer_编程题_从尾到头打印链表
-
剑指offer之队列中的最大值(C++/Java双重实现)
-
【剑指Offer】链表中倒数第k个结点
-
剑指Offer编程题(python)——链表
-
荐 剑指Offer(Java)---字符串
-
剑指offer之在排序数组中查找数字 I(C++/Java双重实现)
-
剑指Offer04:二维数组中的查找(Java)