序
本文主要记录找到了leet代码链表倒数第k个节点
输入
题目
链表,输出链表倒数第k个节点。 为了符合大多数人的习惯,正题从1开始数。 也就是说,链表末尾的节点是倒数第一个节点。 例如,链表有六个节点,从第一个节点开始依次为1、2、3、4、5、6。 这个链表中倒数第三个节点是值为4的节点。示例:
给出链表: 1-2-3-4-5和k=2。
返回链表4-5。
资料来源:力量按钮(leet代码)。
链接: https://leet代码- cn.com /简档/联航-中道-墅- Di-KGE -街道- lcof
版权归互联网所有。 商业转载请联系官方许可证。 非商业转载请注明出处。
题解
/*** *定义资讯连结清单。
* *公共类列表节点{
* *英特瓦尔;
* *监听器下一步;
* *列表节点(intx ) { val=x; }
* }
*/
类解决方案{2}
公共节点头(listnodegetkthfromend,int k ) {
listnode C1=头;
wile(C1!=空值k 0
c1=c1.next;
k----;
}
listnode C2=头;
wile(C1!=空值) {
c1=c1.next;
c2=c2.next;
}
返回C2;
}
)快速指针先将快速指针向前移动k步,然后使两个指针同步。 当快速指针指向头部时,慢速指针是链表中倒数第k个节点。
小结
这里采用的是快速指针型。 先将快速指针前进k步,然后使两个指针同步进行。 当快速指针到达头部时,慢速指针是链表中倒数第k个节点。