反转链表

题目描述
输入一个链表,反转链表后,输出新链表的表头。

分析:定义当前节点的前节点pre,和当前节点的后节点next,完成反转,即从head->next,到head->pre。

我的Code如下:

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode ReverseList(ListNode head) {
        ListNode pre = null;
        ListNode next = null;
        while(head!=null){
            //保存head的next节点,避免丢失
            next = head.next;
            //让当前节点head指向前面节点pre
            head.next = pre;
            //上述操作已完成最重要的反转
            //然后,前面的节点pre后移一位,head节点也后移一位
            pre = head;
            head = next;
        }
        return pre;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 链表这部分最常见的就是链表反转,这里主要针对三种题型来对链表的反转问题进行了讲解。分别对应leetcode中的题目...
    simples阅读 477评论 0 0
  • 题目描述 输入一个链表,反转链表后,输出新链表的表头。 解题思路 设置三个指针,head为当前节点,pre为当前节...
    请收下章鱼君的膝盖阅读 285评论 0 1
  • 题目描述 输入一个链表,反转链表后,输出新链表的表头。 解题思路 设置三个指针,head为当前节点,pre为当前节...
    繁著阅读 261评论 0 0
  • 题目描述 输入一个链表,反转链表后,输出新链表的表头。 思路 首先针对普通的情况,这里建立两个指针,pre和cur...
    Max_7阅读 184评论 0 0
  • 🍞环境:牛客的编译环境🍰语言:JavaScript☕️难点:没有考虑到底数为0,指数为负数和正数的不同情况。🍊题目...
    我的天气很好啦阅读 145评论 0 0