成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

LeetCode:206. 反轉(zhuǎn)鏈表

wenshi11019 / 1228人閱讀

摘要:示例輸入輸出進(jìn)階你可以迭代或遞歸地反轉(zhuǎn)鏈表??梢栽O(shè)置一個(gè)指針,指向,保證后續(xù)的操作然后將,往前挪動(dòng),當(dāng)然還有,直到為空,這時(shí)指向反轉(zhuǎn)后鏈表的頭結(jié)點(diǎn)。接下來考慮遞歸結(jié)束的條件非常顯然,子鏈表只有一個(gè)節(jié)點(diǎn)是遞歸結(jié)束,直接返回該節(jié)點(diǎn)。

本文來自 SoulOH 的CSDN 博客 ,原文地址請(qǐng)點(diǎn)擊:https://blog.csdn.net/SoulOH/...
題目:
反轉(zhuǎn)一個(gè)單鏈表。

示例:

輸入: 1->2->3->4->5->NULL
輸出: 5->4->3->2->1->NULL

進(jìn)階:
你可以迭代或遞歸地反轉(zhuǎn)鏈表。你能否用兩種方法解決這道題?

解答:

迭代方式:

首先判斷鏈表是不是空的,如果是空的,直接返回null;

對(duì)于鏈表:


放兩個(gè)指針p1, p2:


不能直接將p2 -> next指向p1,否則鏈表會(huì)斷掉。


可以設(shè)置一個(gè)tmp指針,指向 p2 -> next,保證后續(xù)的操作:


然后將p1,p2往前挪動(dòng),當(dāng)然還有tmp,直到p2為空,這時(shí)p1指向反轉(zhuǎn)后鏈表的頭結(jié)點(diǎn)。

最后一次:


剛好結(jié)束的時(shí)候:


完成了?

不。好像有一點(diǎn)不對(duì)勁兒,還多了一個(gè)1 -> 2的指針,少了一個(gè)null(1 -> null)。正巧head還在,通過head -> next訪問多余的指針,指向null(其實(shí)一開始就可以這么干的。)

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

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} head
 * @return {ListNode}
 */
var reverseList = function(head) {
    //迭代
    if (head == null || head.next == null) return head;
    var p1 = head;
    var p2 = head.next;
    p1.next = null;
    while (p2 !== null) {
        var temp = p2.next;
        p2.next = p1;
        p1 = p2;
        p2 = temp;
    }
    return p1;
};
遞歸方式:

我們可以從另一個(gè)角度考慮這件事:

同樣地,對(duì)于這樣一個(gè)鏈表:


我們要反轉(zhuǎn)它,其實(shí)可以

然后我們當(dāng)作這個(gè)子鏈表已經(jīng)反轉(zhuǎn)完成:


而我們需要的是:


于是我們可以將上上張圖的head.next.next = head:像是這樣:


然而僅僅這樣是不夠的,鏈表到現(xiàn)在有一個(gè)明顯的環(huán),我們要把這個(gè)環(huán)去掉:

令head.next = null即可。


完成。

接下來考慮遞歸結(jié)束的條件:非常顯然,子鏈表只有一個(gè)節(jié)點(diǎn)是遞歸結(jié)束,直接返回該節(jié)點(diǎn)。

當(dāng)然,這個(gè)可以和一開始的空值處理(空鏈表的處理)寫到一起。

下面是具體實(shí)現(xiàn):

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} head
 * @return {ListNode}
 */
var reverseList = function(head) {
    //遞歸
    if (head == null || head.next == null) return head;
    var res = reverseList(head.next);
    head.next.next = head;
    head.next = null;
    return res;
    
};

本文來自 SoulOH 的CSDN 博客 ,原文地址請(qǐng)點(diǎn)擊:https://blog.csdn.net/SoulOH/...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/97989.html

相關(guān)文章

  • LeetCode 之 JavaScript 解答第206題 —— 反轉(zhuǎn)鏈表(Reverse Link

    摘要:算法思路兩種方法一般反轉(zhuǎn)遞歸法一般解決定義三個(gè)指針,分別為,存儲(chǔ)當(dāng)前結(jié)點(diǎn),指向反轉(zhuǎn)好的結(jié)點(diǎn)的頭結(jié)點(diǎn),存儲(chǔ)下一結(jié)點(diǎn)信息。遞歸法重點(diǎn)分析先確定終止條件當(dāng)下一結(jié)點(diǎn)為時(shí),返回當(dāng)前節(jié)點(diǎn)判斷當(dāng)前的鏈表是否為遞歸找到尾結(jié)點(diǎn),將其存儲(chǔ)為頭結(jié)點(diǎn)。 Time:2019/4/23Title: Reverse Linked ListDifficulty: EasyAuthor: 小鹿 題目:Reverse...

    zhangfaliang 評(píng)論0 收藏0
  • LeetCode 206反轉(zhuǎn)鏈表 Reverse Linked List

    摘要:反轉(zhuǎn)一個(gè)單鏈表。示例輸入輸出進(jìn)階你可以迭代或遞歸地反轉(zhuǎn)鏈表。你能否用兩種方法解決這道題解題思路每次遍歷到最后一位取節(jié)點(diǎn)這種方法就算了時(shí)間復(fù)雜度太高。從鏈表末尾向頭部逐個(gè)分離節(jié)點(diǎn),并將節(jié)點(diǎn)添加到新鏈表的末尾。與迭代法原理相似。 反轉(zhuǎn)一個(gè)單鏈表。 Reverse a singly linked list. 示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2...

    Gilbertat 評(píng)論0 收藏0
  • LeetCode 206反轉(zhuǎn)鏈表 Reverse Linked List

    摘要:反轉(zhuǎn)一個(gè)單鏈表。示例輸入輸出進(jìn)階你可以迭代或遞歸地反轉(zhuǎn)鏈表。你能否用兩種方法解決這道題解題思路每次遍歷到最后一位取節(jié)點(diǎn)這種方法就算了時(shí)間復(fù)雜度太高。從鏈表末尾向頭部逐個(gè)分離節(jié)點(diǎn),并將節(jié)點(diǎn)添加到新鏈表的末尾。與迭代法原理相似。 反轉(zhuǎn)一個(gè)單鏈表。 Reverse a singly linked list. 示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2...

    heartFollower 評(píng)論0 收藏0
  • LeetCode 61:旋轉(zhuǎn)鏈表 Rotate List

    摘要:給定一個(gè)鏈表,旋轉(zhuǎn)鏈表,將鏈表每個(gè)節(jié)點(diǎn)向右移動(dòng)個(gè)位置,其中是非負(fù)數(shù)。按上述思路解,與旋轉(zhuǎn)數(shù)組那道題大同小異,來介紹另一種很簡(jiǎn)單高效的方法。只需在第個(gè)節(jié)點(diǎn)之后切斷,首尾連接即可。另外可能大于鏈表長(zhǎng)度,應(yīng)當(dāng)做求余運(yùn)算。 ?給定一個(gè)鏈表,旋轉(zhuǎn)鏈表,將鏈表每個(gè)節(jié)點(diǎn)向右移動(dòng) k 個(gè)位置,其中 k 是非負(fù)數(shù)。 Given a linked list, rotate the list to the ...

    Hwg 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<