鏈表中倒數(shù)第k個結點

題目描述

輸入一個鏈表,輸出該鏈表中倒數(shù)第k個結點。(網(wǎng)易游戲面試題,難度:easy)

分析:用兩個指針p1,p2. p1先往前走k步,然后p1,p2同時向后走知道p1指向null
一開始寫程序判定跳出條件是p1指向末尾節(jié)點,其實p1應該指向null才是結束。注意一些邊界條件

/*
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 head;
        }
        int len = 1;
        ListNode Head = new ListNode(-1);
        Head.next = head;
        while (head.next != null) {
            len++;
            head = head.next;
        }
        if (k > len) {
            return null;
        }
        
        ListNode p1 = Head,p2 = Head;
        
        while (k>0) {
            --k;
            p1 = p1.next;
        }
        while (p1 != null) {
            p1 = p1.next;
            p2 = p2.next;
        }
        return p2;
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容