单链表的倒数第k个节点

给定一个非空单链表,返回其倒数第k个节点。
要求:不改变和新增任何节点。
输入、输出描述
输入:
list:非空单链表头节点
k: 给定整数,且k>=1 and k<=len(list)
输出:
list的倒数第k个节点
Example
输入:
list=list(1,2,3,4,5)
k=2
输出:
list(4,5)
代码:
import java.util.*;
     
    public class Main {
     public LinkNode<Integer> solution(LinkNode<Integer> list, int k) {
            //输入合法性校验
            if (list == null || k < 1) {
                return null;
            }
     
            LinkNode<Integer> cur = list;
            int total = 0;
            while (cur != null) {
                total++;
                cur = cur.next;
            }
     
            int skip = total - k;
     
            cur = list;
            for (int i = 0; i < skip; i++) {
                cur = cur.next;
            }
     
            return cur;
        }
    }
一个创业中的苦逼程序员
评论专区

隐藏