题目链接:剑指 Offer 22. 链表中倒数第k个节点
2021年9月2日 星期四
鸽王如我,又断更了。哎!
今天我们又来欺负简单题了
冲冲冲
觉得我写的还可以的大佬,欢迎留下一个赞(可怜的眼神.OoO.)
题意很简单,找到链表中倒数第k个节点,也是就正数第n-k+1个节点 正向遍历然后统计节点个数输出即可。
c++
/*
**by 小染
**2021年9月2日 星期四 18:28
*/
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* getKthFromEnd(ListNode* head, int k) {
ListNode *temp=head,*res=NULL;
int len=0,cnt=0;
while(temp){
len++;
temp=temp->next;
}
while(head){
cnt++;
res=head;
if(cnt==len-k+1) break;
head=head->next;
}
return res;
}
};
java
/*
**by 小染
**2021年9月2日 星期四 18:28
*/
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode getKthFromEnd(ListNode head, int k) {
int n=0,cnt=0;
ListNode node=head;
while(head!=null){
n++;
head=head.next;
}
while(cnt<n-k){
node=node.next;
cnt++;
}
return node;
}
}
python
/*
**by 小染
**2021年9月2日 星期四 18:28
*/
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def getKthFromEnd(self, head: ListNode, k: int) -> ListNode:
node , n = head , 0
while head:
head=head.next
n+=1
cnt=0
while(cnt<n-k):
node=node.next
cnt+=1
return node