zoukankan      html  css  js  c++  java
  • Reverse Linked List****

    Reverse a singly linked list.

    click to show more hints.

    Hint:

    A linked list can be reversed either iteratively or recursively. Could you implement both?

    分析:p = p->next的位置很重要!!继续思考!

     1 /**
     2  * Definition for singly-linked list.
     3  * struct ListNode {
     4  *     int val;
     5  *     ListNode *next;
     6  *     ListNode(int x) : val(x), next(NULL) {}
     7  * };
     8  */
     9 class Solution {
    10 public:
    11     ListNode* reverseList(ListNode* head) {
    12         ListNode* p = head;
    13         ListNode* current = NULL;
    14         while(p!=NULL)
    15         {
    16             ListNode* newNode = p;
    17             p = p->next;
    18             newNode->next = current;
    19             current = newNode;
    20         }
    21         return current;
    22     }
    23 };

    Runtime: 8ms

     1 /**
     2  * Definition for singly-linked list.
     3  * struct ListNode {
     4  *     int val;
     5  *     ListNode *next;
     6  *     ListNode(int x) : val(x), next(NULL) {}
     7  * };
     8  */
     9 class Solution {
    10 public:
    11     ListNode* reverseList(ListNode* head) {
    12         if(!head || !head->next) return head;
    13         
    14         ListNode* pre = head;
    15         ListNode* current = pre->next;
    16         pre->next = NULL;
    17         while(current){
    18             ListNode* post = current->next;
    19             current->next = pre;
    20             pre = current;
    21             current = post;
    22         }
    23         return pre;
    24     }
    25 };
  • 相关阅读:
    Webpack探索【3】--- loader详解
    Webpack探索【2】--- 安装、项目初始化、webpack.config.js配置文件
    Redux
    Object.defineProperty
    Promise A/+ 简单实现
    css 布局
    Redis
    meta 详解
    sublime Text 3 快捷键
    Question
  • 原文地址:https://www.cnblogs.com/amazingzoe/p/4489193.html
Copyright © 2011-2022 走看看