剑指Offer:反转链表Java/Python
程序员文章站
2022-07-10 13:54:58
...
1.题目描述
输入一个链表,反转链表后,输出新链表的表头。
2.算法描述
1.新建一个头节点作为新链表的头节点。返回的时候返回头节点的下一个结点。
2.遍历链表,将每一个结点以头插法的方式插入新链表。头插法就是每次插入到链表的开始位置。
3.代码描述
3.1.Java代码
/*
public class ListNode{
int val;
ListNode next = null;
public ListNode(int val){
this.val = val;
}
}
*/
public class Solution {
public ListNode ReverseList(ListNode head) {
ListNode cur = head;
ListNode newHead = new ListNode(-1);
while(cur != null){
ListNode pre = cur;
cur = cur.next;
pre.next = newHead.next;
newHead.next = pre;
}
return newHead.next;
}
}
3.2.Python代码
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
# write code here
cur = pHead
newHead = ListNode(-1)
while cur:
pre = cur
cur = cur.next
pre.next = newHead.next
newHead.next = pre
return newHead.next
上一篇: python正则re模块
下一篇: TCP协议的简单实现
推荐阅读
-
剑指offer25:复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),结果返回复制后复杂链表的head。
-
剑指offer JZ31 整数中1出现的次数 Python 解
-
【Python】剑指offer 14:剪绳子
-
剑指offer JZ54 字符流中第一个不重复的字符 Python 多解
-
剑指offer 剪绳子(动态规划) Java
-
[算法练习-剑指offer]题18.二叉树的镜像(Java)
-
剑指Offer_编程题_从尾到头打印链表
-
剑指offer之队列中的最大值(C++/Java双重实现)
-
【剑指Offer】链表中倒数第k个结点
-
剑指Offer编程题(python)——链表