美文网首页皮皮的LeetCode刷题库
【剑指Offer】015——反转链表 (链表)

【剑指Offer】015——反转链表 (链表)

作者: 就问皮不皮 | 来源:发表于2019-08-18 13:00 被阅读1次

题目描述

输入一个链表,反转链表后,输出新链表的表头。

解题思路

设置三个指针,head为当前节点,pre为当前节点的前一个节点,next为当前节点的下一个节点,需要pre和next的目的是让当前节点从pre->head->next1->next2变成pre<-head next1->next2的过程中,用pre让节点反转所指方向,next节点保存next1节点防止链表断开

需要注意的点:
1、如果输入的头结点是null,则返回null
2、链表断裂的考虑

参考代码

Java

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;
        ListNode pre = null;
        ListNode next = null;
        while (head != null) {
            next = head.next; // 保存下一个结点
            head.next = pre;  // 重新指定方向(第一次指向空)
            pre = head;       // 获取
            head = next;      // 新的head
        }
        return pre;
    }
}

Python

# -*- coding:utf-8 -*-
class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None
class Solution:
    # 返回ListNode
    def ReverseList(self, pHead):
        if pHead is None:
            return None
        pre,nex = None, None
        while pHead is not None:
            nex = pHead.next  # 获取下一个
            pHead.next = pre    # 更改方向
            pre = pHead    # 更新前一个
            pHead = nex    # 获取新的pHead
        return pre

个人订阅号

image

相关文章

  • 【剑指Offer】015——反转链表 (链表)

    题目描述 输入一个链表,反转链表后,输出新链表的表头。 解题思路 设置三个指针,head为当前节点,pre为当前节...

  • 2022-03-26 链表反转回文

    反转链表:java版本: 剑指 Offer II 027. 回文链表[https://leetcode.cn/pr...

  • 反转链表

    《剑指offer》面试题24:输入一个链表,反转链表后,输出新链表的表头。 思路:反转链表就是将链表中每一个节点的...

  • 24.反转链表

    剑指 Offer II 024. 反转链表[https://leetcode.cn/problems/UHnkqh...

  • 反转链表

    题目:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后的链表的头节点。 摘抄资料:《剑指offer》[h...

  • 反转链表

    《剑指offer》刷题笔记。如有更好解法,欢迎留言。 关键字:链表 题目描述: 输入一个链表,反转链表后,输出新链...

  • Day1 翻转链表+数组中重复的数字+链表中倒数第k个节点

    剑指 Offer 24. 反转链表(简单)[https://leetcode-cn.com/problems/fa...

  • 剑指 Offer 24 反转链表

    剑指 Offer 24. 反转链表[https://leetcode-cn.com/problems/fan-zh...

  • 2018-09-29

    剑指offer 链表中倒数第k个结点 反转链表后,输出新表头 合并两个排序的链表非递归的方法 递归方法

  • 剑指offer:反转链表

    题目分析 输入一个链表,反转链表后,输出链表的所有元素。 代码

网友评论

    本文标题:【剑指Offer】015——反转链表 (链表)

    本文链接:https://www.haomeiwen.com/subject/zasrsctx.html