返回倒数第 k 个节点
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。
注意:本题相对原题稍作改动
示例:
输入: 1->2->3->4->5 和 k = 2
输出: 4
说明:
给定的 k 保证是有效的。
解题思路:
先遍历链表获取链表长度length,获取倒数第k个,也就是从头开始遍历(length-k)次,返回当前节点的val
java
/**
* 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 findk = head;
int length = 0;
while(l!=null){
length = length + 1;
l = l.next;
}
for(int i = 0; i < length - k;i++){
findk =findk.next;
}
return findk.val;
}
}
python
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def kthToLast(self, head, k):
"""
:type head: ListNode
:type k: int
:rtype: int
"""
l = head
findk = head
length = 0
while l :
length =length +1
l = l.next
for i in range (length-k):
findk = findk.next
return findk.val