赞
踩
链表是很重要的数据结构,许多都依赖于链表构建。比如哈希表开放链表构建法等。作为如此重要的数据结构,链表是面试笔试的重要考核点。这里,就对几个经典的链表算法笔试题做一个归纳汇总。
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; }
怎么理解呢?
这是初始的正向链表。
进行初始化。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。