remove the nth?node

Given a linked list, remove the nth node from the end of list and return its head.
** Notice**
The minimum number of nodes in list is n.

Example
Given linked list: 1->2->3->4->5->null, and n = 2.
After removing the second node from the end, the linked list becomes 1->2->3->5->null.

/**
 * Definition for ListNode.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int val) {
 *         this.val = val;
 *         this.next = null;
 *     }
 * }
 */ 
public class Solution {
    /**
     * @param head: The first node of linked list.
     * @param n: An integer.
     * @return: The head of linked list.
     */
    ListNode removeNthFromEnd(ListNode head, int n) {
        // write your code here
        
        if (head == null) return null;
        
        ListNode p1 = head;
        ListNode p2 = head;
        ListNode prev = null;
        int i = 0;
        
        while (i < n) {
            p1 = p1.next;
            i++;
        }
        
        while (p1 != null) {
            prev = p2;
            p2 = p2.next;
            p1 = p1.next;
        }
        
        if (prev == null) {
            head = head.next;
            return head;
        } 
        
        prev.next = p2.next;
        return head;
        
    }
}

/*

public class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        if (n <= 0) {
            return null;
        }
        // add one more to the list, then when the while loop ends, get the
        // preDelete node right away
        ListNode dummy = new ListNode(0);
        dummy.next = head;
        
        ListNode preDelete = dummy;
        for (int i = 0; i < n; i++) {
            if (head == null) {
                return null;
            }
            head = head.next;
        }
        while (head != null) {
            head = head.next;
            preDelete = preDelete.next;
        }
        preDelete.next = preDelete.next.next;
        return dummy.next;
    }
}

*/
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末屿笼,一起剝皮案震驚了整個(gè)濱河市拥诡,隨后出現(xiàn)的幾起案子欧芽,更是在濱河造成了極大的恐慌壤靶,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蚓胸,警方通過(guò)查閱死者的電腦和手機(jī)挣饥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)沛膳,“玉大人扔枫,你說(shuō)我怎么就攤上這事∮谥茫” “怎么了茧吊?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)八毯。 經(jīng)常有香客問(wèn)我搓侄,道長(zhǎng),這世上最難降的妖魔是什么话速? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任讶踪,我火速辦了婚禮,結(jié)果婚禮上泊交,老公的妹妹穿的比我還像新娘乳讥。我一直安慰自己,他們只是感情好廓俭,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布云石。 她就那樣靜靜地躺著,像睡著了一般研乒。 火紅的嫁衣襯著肌膚如雪汹忠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天雹熬,我揣著相機(jī)與錄音宽菜,去河邊找鬼。 笑死竿报,一個(gè)胖子當(dāng)著我的面吹牛铅乡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播烈菌,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼阵幸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了僧界?” 一聲冷哼從身側(cè)響起侨嘀,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎捂襟,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體欢峰,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡葬荷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年涨共,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宠漩。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡举反,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扒吁,到底是詐尸還是另有隱情火鼻,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布雕崩,位于F島的核電站魁索,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏盼铁。R本人自食惡果不足惜粗蔚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望饶火。 院中可真熱鬧鹏控,春花似錦、人聲如沸肤寝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鲤看。三九已至缘揪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刨摩,已是汗流浹背寺晌。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留澡刹,地道東北人呻征。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像罢浇,于是被迫代替她去往敵國(guó)和親陆赋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問(wèn)題, 分享了一些自己做題目的經(jīng)驗(yàn)嚷闭。 張土汪:刷leetcod...
    土汪閱讀 12,724評(píng)論 0 33
  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 9,392評(píng)論 0 23
  • 使用CocoaPods管理第三方框架非常方便攒岛,但是有時(shí)候也會(huì)出現(xiàn)一些問(wèn)題。 問(wèn)題來(lái)源 今天下載了Coding源碼胞锰,...
    mieGod閱讀 10,085評(píng)論 4 11
  • 看了部電影灾锯,Once,慢慢的節(jié)奏,在開頭就被男主嘶吼的傾述所吸引嗅榕,拽住顺饮,想看下去吵聪。 如所有電影一般,男主會(huì)遇到女主...
    大小囡囡閱讀 356評(píng)論 0 1
  • 八篇千古家訓(xùn)兼雄,存給子孫看 孔子“訓(xùn)子鯉” “不學(xué)‘詩(shī)’吟逝,無(wú)以言;不學(xué)‘禮’赦肋,無(wú)以立块攒。” 一日佃乘,孔子站在庭院中囱井,他的...
    子正書院閱讀 356評(píng)論 0 0