小景哥哥

世界很大,而我们还需要再成长!

您现在的位置是:首页>爱编程>详细内容

链表中倒数第k个结点

发布时间:2018-08-13 00:00:00编辑:Jason浏览(312)评论(0)

    14. 链表中倒数第k个结点

    题目描述

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

     

    解题思路:

    从头到尾遍历链表,当个数大于k时,用cur指向当前结点,backKth指向当前结点往前数第k个结点,然后二者同时往前遍历,当cur指向尾结点时,backKth正好指向倒数第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) {
            if(head == null || k < 1)
                return null;
            ListNode cur = head;
            ListNode backKth = null;
            int number = 0;
            while(cur!=null){
                number++;
                if(number == k)
                    backKth = head;
                if(number > k)
                    backKth = backKth.next;
                cur = cur.next;
            }
            return backKth;
        }
    }

关键字词:offer