反轉單向鍊錶
實現反轉單向鍊錶和雙向鍊錶的函式。
如 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...