逆转链表是简单而又简单的链表问题,其问题的方法之一可以设置三个指针,一个指向当前结点,一个指向前驱结点,一个指向后继指针 代码如下: class Solution { public: ListNode* ReverseL…
分类:链表相关算法
(剑指Offer)面试题16:反转链表
题目: 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。 链表的定义如下: struct ListNode{ int val; ListNode* next; }; 思路: 反转链表,需要调整结点…
(剑指Offer)面试题37:两个链表的第一个公共结点
题目: 输入两个链表,找出它们的第一个公共结点。 链表结点的定义如下: struct ListNode{ int val; ListNode* next; ListNode(int x):val(x),next(NULL…
(剑指Offer)面试题17:合并两个排序的链表
题目: 输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然时按照递增排序的。 链表结点定义如下: struct ListNode{ int val; ListNode* next; }; 思路: 合并两个递增排…
(剑指Offer)面试题45:圆圈中最后剩下的数字
题目: 0,1,…n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字,求出这个圆圈里剩下的最后一个数字。 思路: 1、环形链表模拟圆圈 创建一个n个节点的环形链表,然后每次在这个链表中删…