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

資訊專欄INFORMATION COLUMN

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

graf / 3250人閱讀

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

題目描述

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

分析

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

val屬性存儲當前的值,next屬性存儲下一個節(jié)點的引用。

要遍歷鏈表就是不斷找到當前節(jié)點的next節(jié)點,當next節(jié)點是null時,說明是最后一個節(jié)點,停止遍歷。

最后別忘了,從尾到頭遍歷鏈表,不要忘了將你的結(jié)果進行翻轉(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();
}
拓展

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

一個對象存儲著本身的值和下一個元素的地址。

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

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

        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){
                    //遍歷找到鏈表的終點
                    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)

把初始鏈表頭當做基準點

移動下一個元素到頭部

直到下一個元素為空

    /**
     * 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) {
        // 將當前節(jié)點從鏈表中取出
        currentNode = head.next;
        head.next = currentNode.next;
        // 將取出的節(jié)點移動到頭部
        currentNode.next = headNode;
        headNode = currentNode;
      }
      return headNode;
    };

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

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

相關(guān)文章

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

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

    DevTTL 評論0 收藏0
  • #yyds干貨盤點#劍指 Offer 06. 從尾到頭打印鏈表

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

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

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

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

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

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

    摘要:一定要認真看分析注釋題目要求題目描述輸入一個鏈表,從尾到頭打印鏈表每個節(jié)點的值。分析因為鏈表只有知道當前結(jié)點才能知道下一結(jié)點,所以不可能直接從后往前打印。 一定要認真看 分析 | 注釋 | 題目要求 Question 1 題目描述:輸入一個鏈表,從尾到頭打印鏈表每個節(jié)點的值。 分析:因為鏈表只有知道當前結(jié)點才能知道下一結(jié)點,所以不可能直接從后往前打印。這種逆序的算法(策略)我們常用棧這...

    hiYoHoo 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<