leetcode-- 刪除鏈表的倒數(shù)第 N 個(gè)結(jié)點(diǎn)

給你一個(gè)鏈表,刪除鏈表的倒數(shù)第?n?個(gè)結(jié)點(diǎn),并且返回鏈表的頭結(jié)點(diǎn)。

進(jìn)階:你能嘗試使用一趟掃描實(shí)現(xiàn)嗎?

示例 1:


輸入:head = [1,2,3,4,5], n = 2

輸出:[1,2,3,5]

示例 2:

輸入:head = [1], n = 1

輸出:[]

示例 3:

輸入:head = [1,2], n = 1

輸出:[1]


提示:

鏈表中結(jié)點(diǎn)的數(shù)目為 sz

1 <= sz <= 30

0 <= Node.val <= 100

1 <= n <= sz

來(lái)源:力扣(LeetCode)

鏈接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list

著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。


代碼實(shí)現(xiàn):


class?Solution?{

????public?ListNode?removeNthFromEnd(ListNode?head,?int?n)?{

????????if?(head?==?null)?{

????????????return?head;

????????}

????????List<ListNode>?list?=?new?ArrayList<>();

????????ListNode?it?=?head;

????????while(it?!=?null)?{

????????????list.add(it);

????????????it?=?it.next;

????????}

????????int?num?=?list.size();

????????if?(n?==?num)?{

????????????if?(num?==?1)?{

????????????????return?null;

????????????}?else?{

????????????????head?=?list.get(1);

????????????}????????????

????????}?else?if?(n?>?num)?{

????????????return?head;

????????}?else?if?(n?==?1)?{

????????????list.get(num?-?n?-?1).next?=?null;

????????}?else?{

????????????list.get(num?-?n?-?1).next?=?list.get(num?-?n?+?1);

????????}

????????return?head;

????}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容