当前位置:   article > 正文

反转链表 - 三个指针_翻转链表 三指针

翻转链表 三指针

反转链表

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。

示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

限制:
0 <= 节点个数 <= 5000

分析

确保代码的鲁棒性
链表的熟练程度
指针

题解

struct ListNode* reverseList(struct ListNode* head){
    // 确保代码的鲁棒性
    if(head == NULL)
        return NULL;
    // 1.只有一个节点
    if(head->next == NULL){
        return head;
    }
    // 2. 拥有两个以上的节点
    struct ListNode *q,*r, *p;
    // 初始化q
    // 初始化r,p
    q = head;
    r = head->next;
    p = r->next;
    q->next = NULL;
    // 如果此时的p是空
    while(p){
        r->next = q;
        q = r;
        r = p;
        p = p->next;
    }
    r->next = q;
    return r;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/1016833
推荐阅读
相关标签
  

闽ICP备14008679号