【【力扣】返回倒数第k个节点】实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。
示例:
输入: 1->2->3->4->5 和 k = 2
输出: 4
实现
/**
* Definition for singly-linked list.
* public class ListNode {
*int val;
*ListNode next;
*ListNode(int x) { val = x;
}
* }
*/
class Solution {
public int kthToLast(ListNode head, int k) {
ListNode l = head;
ListNode r = head;
for (int i = 0;
i < k;
i++) {
r = r.next;
}
while(r != null) {
l = l.next;
r = r.next;
}
return l.val;
}
}
设有n个节点,那么head节点需要移动n-k次才能指向倒数第k个节点,上述的l节点从头开始移动,而r节点需要先将其移动k次,当r节点为null时,就代表移动了n-k次,那么此时l指向的就是倒数第k个节点。
(画图,一目了然!!!)
推荐阅读
- 3.23练习题
- 3.21日 练习题
- jQuery基础练习题一
- Linux 练习题16.1 磁盘配额
- MySQL 练习题16.1
- 文本处理sed&软件管理练习题
- 文本处理和shell练习题
- 机器学习|机器学习期末练习题
- 超级经典的SQL练习题(MySQL版本),你还怕SQL不过关吗()