• 【剑指offer】反转链表


    题目链接:反转链表

     

    题意: 输入一个链表,反转链表后,输出新链表的表头。

    题解:用三个指针,分别指向当前结点,它的前一个结点和后一个结点。

    在遍历过程中,将当前结点的尾结点和前一个结点替换。

     

    代码:

     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* rev = NULL;//反转链表节点
    13         ListNode* node = pHead;
    14         ListNode* pre = NULL;
    15         while(node != NULL){
    16             ListNode *next = node->next;
    17             if(next == NULL)    rev = node;
    18             node->next = pre;
    19             pre = node;
    20             node = next;
    21         }
    22         return rev;
    23     }
    24 };
  • 相关阅读:
    整数的可除性
    椭圆曲线的基本概念
    数组方法分析-笔记
    JS-作用域
    JS-变量存储
    Web框架-inoic
    圣杯布局
    js,php中的面向对象
    正则
    math对象
  • 原文地址:https://www.cnblogs.com/Asumi/p/12399091.html
Copyright © 2020-2023  润新知