文章
19
粉丝
0
获赞
0
访问
653
(1) 设计思想
本题的目标是查找链表中倒数第k个节点(从末尾算起),不改变链表结构。最高效的方法是采用双指针(快慢指针)策略:
此思想的核心是:
(2) 算法详细步骤
(3) C++代码实现
#include <iostream> using namespace std; // 节点定义 struct ListNode { int data; ListNode* next; ListNode(int val) : data(val), next(nullptr) {} }; // 查找倒数第k个节点 int findKthFromEnd(ListNode* head, int k, int& value) { if (!head || k <= 0) return 0; ListNode* i = head; // 慢指针 ListNode* j = head; // 快指针 // j先走k步 for (int count = 0; count < k; ++count) { if (j == nullptr) { // 链表长度小于k return 0; } j = j->next; } // i和j同步前进,直到j到达链尾 w...
登录后发布评论
暂无评论,来抢沙发