成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

【劍指offer】3.從尾到頭打印鏈表

graf / 3294人閱讀

摘要:題目描述輸入一個(gè)鏈表,按鏈表值從尾到頭的順序返回一個(gè)。最后別忘了,從尾到頭遍歷鏈表,不要忘了將你的結(jié)果進(jìn)行翻轉(zhuǎn)。

題目描述

輸入一個(gè)鏈表,按鏈表值從尾到頭的順序返回一個(gè)ArrayList。

分析

要了解鏈表的數(shù)據(jù)結(jié)構(gòu):

val屬性存儲(chǔ)當(dāng)前的值,next屬性存儲(chǔ)下一個(gè)節(jié)點(diǎn)的引用。

要遍歷鏈表就是不斷找到當(dāng)前節(jié)點(diǎn)的next節(jié)點(diǎn),當(dāng)next節(jié)點(diǎn)是null時(shí),說(shuō)明是最后一個(gè)節(jié)點(diǎn),停止遍歷。

最后別忘了,從尾到頭遍歷鏈表,不要忘了將你的結(jié)果進(jìn)行翻轉(zhuǎn)。

代碼
/*function ListNode(x){
    this.val = x;
    this.next = null;
}*/
function printListFromTailToHead(head)
{
    const result = [];
    let temp = head;
    while(temp){
        result.push(temp.val);
        temp = temp.next;
    }
    return result.reverse();
}
拓展

鏈表定義:用一組任意存儲(chǔ)的單元來(lái)存儲(chǔ)線性表的數(shù)據(jù)元素。

一個(gè)對(duì)象存儲(chǔ)著本身的值和下一個(gè)元素的地址。

需要遍歷才能查詢到元素,查詢慢。

插入元素只需斷開連接重新賦值,插入快。

        function LinkList(){
            function node(element){
                this.value = element;
                this.next = null;
            }
            let length = 0;
            let head = null;
        }
        LinkList.prototype = {
            // 追加
            append:function(element){
                var node = new node(element);
                var temp = this.head;
                if(this.head){
                    //遍歷找到鏈表的終點(diǎn)
                    while(temp.next){
                        temp = temp.next;
                    }
                    temp.next = node;
                }else{
                    this.head = node;
                }
                this.length++;
            },
            // 插入
            insert:function(element,index){
                if(index <= this.length && index>0){
                    var node = new node(element);
                    var currentIndex = 0;
                    var currentNode = this.head;
                    var preNode = null;
                    if (currentIndex === 0) {
                        node.next = currentNode;
                        this.head = node;
                        return;
                    }
                    while(currentIndex
鏈表翻轉(zhuǎn)

把初始鏈表頭當(dāng)做基準(zhǔn)點(diǎn)

移動(dòng)下一個(gè)元素到頭部

直到下一個(gè)元素為空

    /**
     * Definition for singly-linked list.
     * function ListNode(val) {
     *     this.val = val;
     *     this.next = null;
     * }
     */
    /**
     * @param {ListNode} head
     * @return {ListNode}
     */
    var reverseList = function (head) {
      let currentNode = null;
      let headNode = head;
      while (head && head.next) {
        // 將當(dāng)前節(jié)點(diǎn)從鏈表中取出
        currentNode = head.next;
        head.next = currentNode.next;
        // 將取出的節(jié)點(diǎn)移動(dòng)到頭部
        currentNode.next = headNode;
        headNode = currentNode;
      }
      return headNode;
    };

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/100877.html

相關(guān)文章

  • 劍指offer系列——劍指 Offer 06. 從尾到頭打印鏈表(C語(yǔ)言)

    摘要:導(dǎo)航小助手劍指從尾到頭打印鏈表題目詳情解題思路源代碼總結(jié)劍指從尾到頭打印鏈表題目詳情輸入一個(gè)鏈表的頭節(jié)點(diǎn),從尾到頭反過(guò)來(lái)返回每個(gè)節(jié)點(diǎn)的值用數(shù)組返回。時(shí)間復(fù)雜度方法先反轉(zhuǎn)鏈表并求長(zhǎng)度,在將反轉(zhuǎn)后的鏈表數(shù)據(jù)拷貝至數(shù)組中。 ...

    DevTTL 評(píng)論0 收藏0
  • #yyds干貨盤點(diǎn)#劍指 Offer 06. 從尾到頭打印鏈表

    摘要:題目輸入一個(gè)鏈表的頭節(jié)點(diǎn),從尾到頭反過(guò)來(lái)返回每個(gè)節(jié)點(diǎn)的值用數(shù)組返回。 題目輸入一個(gè)鏈表的頭節(jié)點(diǎn),從尾到頭反過(guò)來(lái)返回每個(gè)節(jié)點(diǎn)的值(用數(shù)組返回)。示例 1:輸入:head = [1,3,2]輸出:[2,3,1]限制:0

    SQC 評(píng)論0 收藏0
  • 劍指offer【6】:從尾到頭打印鏈表

    題目 輸入一個(gè)鏈表的頭節(jié)點(diǎn),從尾到頭反過(guò)來(lái)打印出每個(gè)節(jié)點(diǎn)的值。 解題思路 一、棧 第一個(gè)遍歷的節(jié)點(diǎn)最后一個(gè)輸出,而最后一個(gè)比遍歷到的節(jié)點(diǎn)第一個(gè)輸出(后進(jìn)先) public static ArrayList printListFromTailToHead(ListNode listNode){ ArrayList list = new ArrayList(); ...

    Kahn 評(píng)論0 收藏0
  • 劍指Offer(Java版) 持續(xù)更新中

    摘要:面試題從尾到頭打印鏈表輸入一個(gè)鏈表,從尾到頭打印鏈表每個(gè)節(jié)點(diǎn)的值面試題重建二叉樹輸入某二叉樹的前序遍歷和中序遍歷的結(jié)果,請(qǐng)重建出該二叉樹。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹并返回。隊(duì)列中的元素為類型。其中負(fù)數(shù)用補(bǔ)碼表示。 面試題2 單例(之前有整理,略) 面試題3 二維數(shù)組中的查找 public boolean find(int target, int [][] arra...

    justCoding 評(píng)論0 收藏0
  • 利用PHP實(shí)現(xiàn)《劍指 offer》之鏈表(數(shù)據(jù)結(jié)構(gòu)與算法實(shí)戰(zhàn) )

    摘要:一定要認(rèn)真看分析注釋題目要求題目描述輸入一個(gè)鏈表,從尾到頭打印鏈表每個(gè)節(jié)點(diǎn)的值。分析因?yàn)殒湵碇挥兄喇?dāng)前結(jié)點(diǎn)才能知道下一結(jié)點(diǎn),所以不可能直接從后往前打印。 一定要認(rèn)真看 分析 | 注釋 | 題目要求 Question 1 題目描述:輸入一個(gè)鏈表,從尾到頭打印鏈表每個(gè)節(jié)點(diǎn)的值。 分析:因?yàn)殒湵碇挥兄喇?dāng)前結(jié)點(diǎn)才能知道下一結(jié)點(diǎn),所以不可能直接從后往前打印。這種逆序的算法(策略)我們常用棧這...

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

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

0條評(píng)論

閱讀需要支付1元查看
<