剑指offer--反转链表

原创 2017年04月23日 18:40:24

题目描述
输入一个链表,反转链表后,输出链表的所有元素。


思路:
反转链表只需改变链接方向,改变方向时需要将原本指向后一个结点的链接方向指向前一个结点,因此需要记录下三个结点。


AC代码:

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

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode ReverseList(ListNode head) {
        ListNode cur = head;
        ListNode next = null;
        ListNode pre = null;

        if ( head == null || head.next == null){
            return head;
        }

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

        return pre;
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。若需转载,请注明http://blog.csdn.net/qq_30091945 举报

相关文章推荐

牛客网 | 反转链表

输入一个链表,反转链表后,输出链表的所有元素。 /* public class ListNode { int val; ListNode next = null; List...

【牛客网】反转链表

转载于剑指Offer - 题目: 输入一个链表,反转链表后,输出链表的所有元素。 代码: class Solution { public: ListNode* ReverseList(...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

剑指offer--面试题16: 反转链表

 题目描述 输入一个链表,反转链表后,输出链表的所有元素。 python实现: # -*- coding:utf-8 -*- # class ListNode: #     def __i...

剑指offer——反转链表

题目:输入一个链表,要求给出它的反转链表 public static Node ReverseList(Node head){ //在这里定义两个临时变量,用于链表的移动和指向 Node pr...

剑指offer——链表反转之栈方法

题目:输入一个链表的头结点,从头到尾的打印出每个结点的值 上一次我用递归的思想实现了链表的反转,这次我将使用栈的思想来解决会问问题,因为栈的特殊性,后入先出的特点,所以我们可以将链表内的元素遍历,然...

剑指 offer:反转链表

题目描述 输入一个链表,反转链表后,输出链表的所有元素。 思想: 思想:利用栈,先将链表从头到尾放入栈中,然后从新建立新的链表,并输出。 /* public class ListNode { ...

剑指offer 16. 反转链表

class ListNode { int data; ListNode next; } // 题目:链表翻转 // 解法:设立三个标志直接进行翻转 public class Main { ...

剑指offer----反转链表

题目:定义一个方法 输入一个链表的头节点,反转该链表并输出反转后链表的头节点 为了正确反转一个链表,需要调整链表每个节点对下一个节点的指向。 思路:(1)把当前节点的下一个节点保存起来   当前节点的...

剑指offer--反转链表

题目描述:输入一个链表,反转链表后,输出链表的所有元素。 思路1: 1、用三个链表指针分别指向当前节点、当前节点的前一个节点,当前节点的下一个节点; 2、将节点的next指向反转,也就是...

剑指offer-面试题 16:反转链表

面试题 16:反转链表 题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)