單鏈表部分逆置

2021-07-02 02:36:05 字數 845 閱讀 7535

題目來自計蒜客c++部分

題目描述

給定乙個固定的單鏈表,輸入兩個數begin和end。將下標為begin到end之間的內容逆置。

給定的單鏈表為:0->2->4->6->8->10->12->14->16->18

測試資料確保begin和end不會超出單鏈表的長度範圍,並且end>=begin

樣例輸入

2 4

樣例輸出

0->2->8->6->4->10->12->14->16->18

思路就是用乙個count變數計數,來找到部分遍歷的起始點和終止點,然後逆置,

因為題目函式之前的部分無法更改,所以取巧用了這麼奇怪的寫法。。。

#include using namespace std;

struct list

;list *head;

void reverse(int begin,int

end,list *&head)

list *dummy;

void fan(int begin,int

end,list *&head)

dummy = after -> next ;

old=pre->next;

while(old!=dummy)

pre->next=new1;

}void displaylist(list *head)

}list *create()

return head;

}int main()

單鏈表部分逆置

題目描述如下 該程式最關鍵的地方在於reverse函式,這裡使用了兩種實現方式,分別採用了陣列 reverse 及指標 reverse2 的方式,具體實現 如下。include using namespace std struct list list head 陣列實現,時間複雜度和空間複雜度都為o...

單鏈表逆置

單鏈表逆置 include include define item num 10 typedef struct tagnode node node linklist create void linklist destroy node head void linklist print node hea...

單鏈表逆置

name 單鏈表逆置 author 巧若拙 date 22 11 14 16 13 description 分別用遞迴和非遞迴兩種方式實現單鏈表 不含頭結點 的逆置 include include include typedef char elemtype typedef int status 函式...