力扣java-返回倒数第k个节点
题目描述 实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 思路: 双指针 第一个指针先走k步,然后第二个指针在从头走,这个时候两个指针同时移动。
当第一个指针移动到末尾的时候,返回第二个指针就可以了,第二个指针指向的值就是我们找的倒数第k个结点。
class Solution {
public int kthToLast(ListNode head, int k) {
ListNode first = head;//初始化first指针指向头结点
ListNode second = head;//初始化second指针指向头结点
while(k -- > 0){
//first指针先走k步
first = first.next;
}
while(first != null){
//循环条件是first指针不为空,走到null说明first走到链表的末尾
//两个指针分别移动
first =first.next;
second =second.next;
}
return second.val;//返回second指针指向的值
}
}
上一篇:
IDEA上Java项目控制台中文乱码
