lintcode 翻转链表

原创 2016年08月28日 17:07:57

问题描述

http://www.lintcode.com/zh-cn/problem/reverse-linked-list/

样例
给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null

笔记

就是倒腾一下几个节点,找递推规律

代码

/**
 * Definition of ListNode
 * 
 * class ListNode {
 * public:
 *     int val;
 *     ListNode *next;
 * 
 *     ListNode(int val) {
 *         this->val = val;
 *         this->next = NULL;
 *     }
 * }
 */
class Solution {
public:
    /**
     * @param head: The first node of linked list.
     * @return: The new head of reversed linked list.
     */
    ListNode *reverse(ListNode *head) {
        // write your code here
        if (head == NULL)
            return NULL;
        ListNode *pre = NULL;
        ListNode *tmp = head->next;
        while (head)
        {
            tmp = head->next;
            head->next = pre;
            pre = head;
            head = tmp;
        }
        return pre;
    }
};

二次练习


/**
 * Definition of ListNode
 * 
 * class ListNode {
 * public:
 *     int val;
 *     ListNode *next;
 * 
 *     ListNode(int val) {
 *         this->val = val;
 *         this->next = NULL;
 *     }
 * }
 */
class Solution {
public:
    /**
     * @param head: The first node of linked list.
     * @return: The new head of reversed linked list.
     */
    ListNode *reverse(ListNode *head) {
        // write your code here
        ListNode* pre = NULL;
        ListNode* now = head;
        ListNode* nex = NULL;
        while (now != NULL)
        {
            nex = now->next;
            now->next = pre;
            pre = now;
            now = nex;
        }
        return pre;
    }
};
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

reverse-linked-list

asy Reverse Linked List Show result  41% Accepted Reverse a linked list. Ha...

求单链表的最大值与原地逆转

数据结构链表一章已学习完毕,因此编了一个程序用以实现链式表的构建,插入,查找,求最大值,以及原地逆转。 除了求最大值与原地逆转之外都是常规操作,不再赘述,着重分析最大值与逆转的算法。 一、最大值的...

LintCode | Easy | 翻转链表 | Reverse Linked List

题目 翻转一个链表 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 挑战 在原地一次翻转完成 解题思路 翻转链表,顾名思义,将链表从最后一个节点...

LintCode-翻转链表

翻转链表 翻转一个链表 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 挑战 在原地一次翻转完...

[LintCode]35.翻转链表 ***

翻转一个链表 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 第一种方法就是重新建立一个单链表newList,每次将head中的第一个结点放到ne...

LintCode 链表求和

1.描述 你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序, 使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。 样例 给出两个链表...

LintCode 98-链表排序

本人电子系,只为一学生。心喜计算机,小编以怡情。在 O(n log n) 时间复杂度和常数级的空间复杂度下给链表排序。样例 给出 1->3->2->null,给它排序变成 1->2->3->null...

lintcode flatten-binary-tree-to-linked-list 将二叉树拆成链表 前序扁平化 中序扁平化

问题描述lintcode笔记看了半天还是比较能接受递归的解法。参考: [LeetCode] flatten binary tree 扁平化二叉树 思路:假设以下函数 TreeNode cove...

LintCode 找到单链表倒数第n个节点

给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1. 设置2个指针,当第一个指针从表头向前走到第n-1个节点时,第二个指针开始从表头出发。当第一个指针走到尾节点时,...

LintCode 两两交换链表中的节点

1.描述 给一个链表,两两交换其中的节点,然后返回交换后的链表。 样例 给出 1->2->3->4, 你应该返回的链表是 2->1->4->3。 2.分析 假设链表中原有的元素为1->2->3->...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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