zoukankan      html  css  js  c++  java
  • [剑指Offer] 15.反转链表

    题目描述

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

    【思路1】三个指针在链表上同时滑动。

     1 /*
     2 struct ListNode {
     3     int val;
     4     struct ListNode *next;
     5     ListNode(int x) :
     6             val(x), next(NULL) {
     7     }
     8 };*/
     9 class Solution {
    10 public:
    11     ListNode* ReverseList(ListNode* pHead) {
    12         ListNode* p = pHead;
    13         ListNode* q = NULL;
    14         ListNode* r = NULL;
    15         while(p != NULL){
    16             r = p->next;
    17             p->next = q;
    18             q = p;
    19             p = r;
    20         }
    21         return q;
    22     }
    23 };

    【思路2】头插法

     1 /*
     2 struct ListNode {
     3     int val;
     4     struct ListNode *next;
     5     ListNode(int x) :
     6             val(x), next(NULL) {
     7     }
     8 };*/
     9 class Solution {
    10 public:
    11     ListNode* ReverseList(ListNode* pHead) {
    12         ListNode* p = pHead;
    13         ListNode* q = NULL;
    14         while(p != NULL) {
    15             ListNode* temp = p->next;
    16             p->next = q;
    17             q = p;
    18             p = temp;
    19         }
    20         return q;
    21     }
    22 };
  • 相关阅读:
    九九乘法表
    杨辉三角
    显示计算机界面
    完善3.2
    杨辉三角形
    100以内的素数
    九九乘法表
    杨辉三角
    九九乘法表
    杨辉三角形
  • 原文地址:https://www.cnblogs.com/lca1826/p/6474972.html
Copyright © 2011-2022 走看看