当前位置:   article > 正文

链表经典算法题_链表算法题

链表算法题

链表是很重要的数据结构,许多都依赖于链表构建。比如哈希表开放链表构建法等。作为如此重要的数据结构,链表是面试笔试的重要考核点。这里,就对几个经典的链表算法笔试题做一个归纳汇总。
1. 反转链表
这是一个简单题,对于熟悉链表的人来说很简单。对于不懂的人来说就是一个拦路虎。话不多说,上leetcode原题。

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */


struct ListNode* reverseList(struct ListNode* head){
   
    struct ListNode* curr = NULL;
    struct ListNode* prev = head;
    struct ListNode* temp = NULL;
    while (prev) {
   
        temp = prev->next;
        prev->next = curr;
        curr = prev;
        prev = temp;
    }
    return curr;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

怎么理解呢?
1
这是初始的正向链表。
2
进行初始化。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/478377
推荐阅读
相关标签
  

闽ICP备14008679号