【牛客网】链表中倒数第k个结点

一、题目描述:

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

二、解题思路:

1、求链表长度size。
2、倒数第k个节点等于正数第(size-k)个节点。
3、遍利链表,走(size-k)步即可。

三、代码描述:

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode FindKthToTail(ListNode head,int k) {
       //判断k的合法性
        if(k<0||k>size){
            return null;
        }        
        int size=getSize(head);
        int steps=size-k;
        ListNode cur=head;
        for(int i=0;i<steps;i++){
            cur=cur.next;
        }
       return cur;
    }
    //获取链表长度
    private int getSize(ListNode head){
        int size=0;
        for(ListNode cur=head;cur!=null;cur=cur.next){
            size++;
        }
        return size;
    }
}
发布了75 篇原创文章 · 获赞 14 · 访问量 1898

猜你喜欢

转载自blog.csdn.net/qq_45328505/article/details/104632318
今日推荐