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;
    }
};
版权声明:本文为博主原创文章,未经博主允许不得转载。

单链表反转

单链表的翻转是一道很基本的算法题。         方法1:将单链表储存为数组,然后按照数组的索引逆序进行反转。         方法2:使用三个指针遍历单链表,逐个链接点进行反转。      ...

反转单链表 (三种方法整理)

题目:反转单链表 输入一个链表,反转链表后,输出链表的所有元素。 据找工作的师兄说,反转单链表基本各个公司面试都会有,整理出一些写的比较好的code,供我等小白们学习。简洁,清晰,...
  • hyqsong
  • hyqsong
  • 2015年10月26日 21:15
  • 17721

链表翻转的图文讲解(递归与迭代两种实现)

链表的翻转是程序员面试中出现频度最高的问题之一,常见的解决方法分为递归和迭代两种。最近在复习的时候,发现网上的资料都只告诉了怎么做,但是根本没有好好介绍两种方法的实现过程与原理。所以我觉得有必要好好的...

Lintcode 35.翻转链表

1.问题描述:翻转一个链表,将给定的链表按他相反的顺序表示。 2.解题思路:相当于尾插法,创建dummy先保存了head的地址,将创建的temp保存head->next的地址,这样就让head下移,...

LintCode-旋转链表

给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数 样例 给出链表1->2->3->4->5->null和k=2 返回4->5->1->2->3->null ...

LintCode-翻转链表

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

旋转链表

题目给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数 样例 给出链表1->2->3->4->5->null和k=2返回4->5->1->2->3->null解题找到第k个结...

链表翻转。给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,翻转后2→1→4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6

链表翻转。给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,翻转后2→1→4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6,用程序实现Nod...
  • dcjhyn
  • dcjhyn
  • 2017年07月27日 17:45
  • 184

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

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

LintCode_35_翻转链表

翻转一个链表 您在真实的面试中是否遇到过这个题?  Yes 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 挑战 在原地一次翻转完成...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lintcode 翻转链表
举报原因:
原因补充:

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