本文主要是介绍图解算法数据结构-LeetBook-链表03_返回倒数第n个数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给定一个头节点为 head 的链表用于记录一系列核心肌群训练项目编号,请查找并返回倒数第 cnt 个训练项目编号。
示例 1:
输入:head = [2,4,7,8], cnt = 1
输出:8
提示:
1 <= head.length <= 100
0 <= head[i] <= 100
1 <= cnt <= head.length
struct ListNode {int val;ListNode *next;ListNode() : val(0), next(nullptr) {}ListNode(int x) : val(x), next(nullptr) {}ListNode(int x, ListNode *next) : val(x), next(next) {}
};//普通做法(我的)
class Solution {
public:ListNode* trainingPlan(ListNode* head, int cnt) {ListNode *p = head;ListNode *p1 = head;int n = 0;while(p){p = p->next;n++;}n -= cnt;while(n--){p1 = p1->next;}return p1;}
};
//快慢指针,无论是从时间还是从空间上都优于以上方法
class Solution1 {
public:ListNode* trainingPlan(ListNode* head, int cnt) {ListNode *fast = head;ListNode *low = head;while(cnt--){fast = fast->next;}while(fast){fast = fast->next;low = low->next;}return low;}
};
这篇关于图解算法数据结构-LeetBook-链表03_返回倒数第n个数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!