美文网首页
Day14 剑指offer:输出倒数第k个结点

Day14 剑指offer:输出倒数第k个结点

作者: zheng7 | 来源:发表于2017-08-10 15:25 被阅读0次

    输入一个链表,输出该链表中倒数第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) return null;
            if(k <= 0) return null;
            
            ListNode node = head;   
            for(int i = 0; i < k-1; i++){
                if(node.next == null) return null;
                node = node.next;
            }
            ListNode res = head;
            while(node.next != null){
                res = res.next;
                node = node.next;
            }
            return res;
        }
    }
    

    例如:求倒数第三个节点
    当node为倒数第一个即node.next == null时,res在node之前两个。所以,node先向后移两下,此时head在node之前两个,node和head(res)一起移动,当node称为倒数第一个节点时,head就是倒数第三个节点。

    相关文章

      网友评论

          本文标题:Day14 剑指offer:输出倒数第k个结点

          本文链接:https://www.haomeiwen.com/subject/awocrxtx.html