题目:求链表中倒数第K个结点
思路:用两个指针,第一个指针先走k-1步,然后两个指针一起走,当第一个指针走到尾节点的时候。第二个指针指向的就是倒数第k个节点。
代码:
首先构造链表的类(这里用的是单链表):
从上图可以看出我们我们构造的单链表类ListNode中包括两个属性:一个属性为数据data和一个属性为next指针。
/**
* 单链表结点的类
* 为了简化访问,属性设置问公有的
* @author Peter
*/
public class ListNode {
public int data; // 存放数据的属性
public ListNode next; //指向下一个节点
}
实现求链表中倒数第k个节点的代码方法:
/**
* 查找链表中倒数第k个结点
*
* @author Peter
*/
public class Main {
// 查找链表中倒数第k个结点
public static ListNode CountdownKListNode(ListNode head, int k) {
// 判断链表是否为空以及k是否为小于0的数
if (head == null || k < 0) { // 链