[剑指offer] 反转链表

题目描述

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

解题思路

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

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

参考代码

/*
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;
        ListNode pre = null;
        ListNode next = null;

        while(head != null){
            next = head.next;
            head.next = pre;
            pre = head;
            head = next;
        }
        return pre;
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java达人

Java 中正确使用 hashCode 和 equals 方法

在这篇文章中,我将告诉大家我对hashCode和equals方法的理解。我将讨论他们的默认实现,以及如何正确的重写他们。我也将使用Apache Commons提...

37360
来自专栏华仔的技术笔记

iOS中的正则表达式,一篇就够了

391100
来自专栏Hongten

python开发_python代码风格(coding style)

13210
来自专栏cmazxiaoma的架构师之路

你应该会的一道多线程笔试题

31030
来自专栏数据结构与算法

610. 数对的个数

★★   输入文件:dec.in   输出文件:dec.out 简单对比 时间限制:1 s   内存限制:128 MB Description 出题是一件...

29770
来自专栏racaljk

Leetcode 25. Reverse Nodes in k-Group 以每组k个结点进行链表反转(链表)

按照题目要求做就行了:比如k=2,首先[1->2->3->4->5]分组为[1->2],[3->4],[5],然后每组反转[2->1],[4->3],[5],最...

11430
来自专栏前端杂谈

es6之块级作用域

282110
来自专栏Golang语言社区

Go语言基础:深入理解 struct 内嵌 inteface

对于 struct 内嵌 inteface 的使用,我是研究好半天才搞懂,这里记录下我疑问: 1. 如何更好的理解匿名接口 // 匿名接口可以被用作变量或者...

38170
来自专栏calmound

sprintf的用法

在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者...

36060
来自专栏iOS122-移动混合开发研究院

【读书笔记】A Swift Tour

素材:A Swift Tour 推荐下载Playground:Download Playground objc 自己较为熟悉,想熟悉下风头正劲的 swift。就...

36480

扫码关注云+社区

领取腾讯云代金券