Reverse Linked List

原创 2015年07月07日 17:46:05

解题思路:三指针,跟踪算法的过程如下:
算法跟踪

代码如下:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode *p;
        p = head;
        int counter = 0;
        for(; p != NULL; ) {
            counter++;
            p = p->next;
        }

        if(counter == 0) {
            return NULL;
        }

        if(counter == 1) {
            return head;    
        }

        if(counter == 2) {
            ListNode *p21, *p22;
            p21 = head;
            p22 = p21->next;
            p21->next = NULL;
            p22->next = p21;
            return p22;
        }

        ListNode *p1, *p2, *p3;
        p1 = head;
        p2 = head->next;
        p3 = head->next->next;
        head->next = NULL;
        for(; p3 != NULL; ) {
            p2->next = p1;
            p1 = p2;
            p2 = p3;
            p3 = p3->next;
        }
        p2->next = p1;
        return p2;




    }
};

【LeetCode-面试算法经典-Java实现】【092-Reverse Linked List II(反转单链表II)】

【092-Reverse Linked List II(反转单链表II)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Reverse a linked list fro...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月06日 07:40
  • 1663

Reverse Linked List以及一道有关倒序的题目

Reverse a singly linked list. Hint: A linked list can be reversed either iteratively or recursively...
  • marcosyw
  • marcosyw
  • 2017年05月25日 09:17
  • 95

逆转链表的一部分 Reverse Linked List II

问题:Reverse a linked list from position m to n. Do it in-place and in one-pass. For example: Gi...
  • luckyjoy521
  • luckyjoy521
  • 2014年03月13日 10:22
  • 832

链表的反转问题(Reverse Linked List)

反转单链表思路有三种, 1.将1->2->3变为
  • luxialan
  • luxialan
  • 2015年07月30日 10:17
  • 509

链表基本概念和操作 及 206. Reverse Linked List

参考书目与链接: 1、基本概念,双向链表与循环链表 2、链表的创建,增加、删除节点,链表的逆序、排序和销毁等 3、链表基本操作(全) 4、双向、循环链表操作...
  • sqiu_11
  • sqiu_11
  • 2017年04月20日 10:59
  • 215

面试算法:Linked List-链 表

Linked List-链 表 很多面试相关的书籍都有链表和字符串操作相关的题,这类问题更考验编程基本功和对基础知识的掌握情况。由于之前很多题目做过就忘,再做时总是磕磕绊绊,说明没有真正消化...
  • bobbycho
  • bobbycho
  • 2016年10月23日 20:02
  • 83

C++实现单链表(Singly-Linked List)追加、遍历、删除

#include using namespace std; struct Node { int data; struct Node* next; }; class List { Node* ...
  • wupeak
  • wupeak
  • 2015年01月27日 00:13
  • 650

LeetCode 206 Reverse Linked List(反转链表)(Linked List)(四步将递归改写成迭代)(*)

翻译反转一个单链表。原文Reverse a singly linked list.分析我在草纸上以1,2,3,41,2,3,4为例,将这个链表的转换过程先用描绘了出来(当然了,自己画的肯定不如博客上面...
  • NoMasp
  • NoMasp
  • 2016年01月14日 06:22
  • 3774

C++:实现LinkedList 学习抽象数据类型

C++:实现LinkedList 学习抽象数据类型标签(空格分隔): c++ 数据结构 作者:陈小默C实现LinkedList 学习抽象数据类型 定义需求 作为类 作为List 作为栈stack 作...
  • qq_32583189
  • qq_32583189
  • 2016年09月04日 17:36
  • 3340

C实现 LeetCode->Reverse Linked List (双指针大法)(单链表反转)

Reverse a singly linked list. /**  *  Reverse a singly linked list    反转单链表,请牢记 Reverse()...
  • liutianshx2012
  • liutianshx2012
  • 2015年06月22日 15:04
  • 503
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Reverse Linked List
举报原因:
原因补充:

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