剑指offer_【14】链表中倒数第K个结点

1.题目描述

输入一个链表,输出该链表中倒数第k个结点。

2.解题思路

  1. 先用一个count计算出链表的长度,如果count<k,返回null

  2. 链表的倒数第K个即为链表的正数(count-k+1)个,一个for循环,将指针轮询到那个点,然后再将起后面截断(head.next = null)即可。

3.代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*
public class ListNode {
int val;
ListNode next = null;

ListNode(int val) {
this.val = val;
}
*/
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
ListNode root = head;
int count = 0;
while(root!=null){
count ++;
root = root.next;
}
if(count<k){
return null;
}
//倒数第K个即正数第(count-k+1)个
for(int i = 1;i<(count-k+1);i++){
head = head.next;
}
return head;
}
}
文章目录
  1. 1. 1.题目描述
  2. 2. 2.解题思路
  3. 3. 3.代码
| 139.6k