反轉單向鍊錶

2021-10-08 14:52:38 字數 1280 閱讀 2580

反轉單向鍊錶

實現反轉單向鍊錶和雙向鍊錶的函式。

如 1->2->3 反轉後變成 3->2->1。

輸入描述:

第一行乙個整數 n,表示單鏈表的長度。

第二行 n 個整數 val 表示單鏈表的各個節點。

第三行乙個整數 m ,表示雙鏈表的長度。

第四行 m 個整數 val 表示雙鏈表的各個節點。

輸出描述:

在給定的函式內返回相應鍊錶的頭指標。

示例1輸入

3

1 2 3

41 2 3 4

輸出
3 2 1

4 3 2 1

備註:

1 ≤n

,m≤1

06

1 \leq n,m \leq 10^6

1≤n,m≤

106−10

6≤va

l≤10

6-10^6 \leq val \leq 10^6

−106≤v

al≤1

06題解:紙上畫畫逆序過程中指標的指向,就很好寫了,詳情見**。

**:

# include

using

namespace std;

struct list_node

;struct double_list_node

;list_node *

input_list

(void

)else

}return phead;

}double_list_node *

input_double_list

(void

)else

}return phead;

}list_node *

reverse_list

(list_node * head)

return pre;

}double_list_node *

reverse_double_list

(double_list_node * head)

return pre;

}void

print_list

(list_node * head)

puts(""

);}void

print_double_list

(double_list_node * head)

puts(""

);}int main (

)

單向鍊錶反轉

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

單向鍊錶反轉

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

鍊錶 反轉單向鍊錶

思路 從第二個元素開始。1 刪除當前元素。2 把當前元素放到頭結點位置。其中需要宣告3個變數 headnode 頭結點 prenode 前乙個結點 currentnode 當前結點 具體步驟如圖所示 實現 反轉單鏈表方法實現類 created by liujinjin on 17 1 19.publ...