力扣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项目控制台中文乱码