演算法 反轉單向鍊錶

2021-09-22 19:04:04 字數 825 閱讀 1949

廢話少說,直接上**:

單向鍊錶模型,如下

public

class

listnode

@override

public string tostring()

sb.("]");

return sb.

tostring()

;}}

方法一:遍歷元素,依此反轉位置
private

static listnode reversenode1

(listnode root)

return reversenode;

}

方法二:新建鍊錶,依此將原有元素插入到頭部
private

static listnode reversenode2

(listnode node)

return reversenode;

}

測試
public

static

void

main

(string[

] arg0)

結果:兩個執行結果一致,均為反轉後的序列

result 1=[

5,4,

3,2,

1]

總結

方法一與方法二的時間複雜度均為n-1 (假設鍊錶長度為n)

方法一的空間複雜度為1,那麼方法二的空間複雜度就是2;double了,因為方法二將整個鍊錶完整的複製了一遍

單向鍊錶反轉

於 題目 已知單向鍊錶的頭結點head,寫乙個函式把這個鍊錶逆序 intel 解答 我們假設單向鍊錶的節點如下 這個題目算是考察資料結構的最基礎的題目了,有兩種方法可以解此題 方法一 這是一般的方法,總之就是用了幾個臨時變數,然後遍歷整個鍊錶,將當前節點的下一節點置為前節點。方法二 node tem...

單向鍊錶反轉

一 鍊錶 鍊錶的結構是一種非線性的資料結構,優點是可以充分使用空間,插入和刪除節點的時候不需要遍歷節點速度較快,但是由於其特性在查詢的時候遍歷速度比較慢。每乙個節點在儲存自己的資料的時候,還儲存下乙個節點的物理位置。可抽象為 二 鍊錶反轉 1 新增物理儲存反轉 如圖 123 4null 第一步 生成...

反轉單向鍊錶

反轉單向鍊錶 實現反轉單向鍊錶和雙向鍊錶的函式。如 1 2 3 反轉後變成 3 2 1。輸入描述 第一行乙個整數 n,表示單鏈表的長度。第二行 n 個整數 val 表示單鏈表的各個節點。第三行乙個整數 m 表示雙鏈表的長度。第四行 m 個整數 val 表示雙鏈表的各個節點。輸出描述 在給定的函式內返...