鍊錶後半部分節點倒序插入前半部分節點中

2021-10-10 20:21:07 字數 933 閱讀 7818

將鍊錶後半部分的節點插入到前半部分節點,使得鍊錶1->2->3->4變成1->4->2->3,或者1-2->3->4->5變成1->5->2->4->3

根據上述問題可知,將鍊錶的後一半的節點從後往前依次插入到前半部分的節點中間,第一步需要找到中間節點將鍊錶分成兩個部分,前半部分的數量是大於或者等於後半部分的,第二步則是將後半部分的鍊錶逆序,第三步就遍歷後半部分的鍊錶,將其插入前半部分的各節點中間

/*

利用乙個空的頭節點,加上快慢指標,當快指標或者它的下乙個節點指向空,此時慢指標指向的下乙個節點,就是後半部分鍊錶的頭節點

*/ listnode* fast =

newlistnode(0

, head)

; listnode* slow =

newlistnode(0

, head)

;while

(fast)

fast = head;

listnode* cur = slow-

>next;

slow-

>next =

nullptr

;

listnode* tmp1 =

nullptr

; listnode* tmp2 = cur;

listnode* t*** = cur-

>next;

while

(t***)

tmp2-

>next = tmp1;

listnode* pre1 = fast;

//儲存插入節點的前乙個節點

listnode* pre2 =

nullptr

;//儲存插入節點

while

(tmp2)

2012寒假後半部分計畫

今天是02.04,到02.20還有16天的時間,這段時間以php為主,接下來就對剩下的這半個月做乙個計畫,計畫五天為乙個小階段,在完成第乙個階段後才能做第二個階段的計畫,以此類推 每階段裡面每天的任務也得制定規則同上。每天記得作總結!04 10第一階段 1.第一天從此刻到5號晚上完成php知識的複習...

mysql忘記命令後半部分 MySQL常用命令

連線myql mysql h host name u user name p pasword 在dos視窗中進入mysql的bin資料夾,輸入一下命令 c mysql bin mysql h localhost u root p 按回車鍵,讓使用者輸入密碼。輸入正確的密碼後,按回車鍵。就會出現 my...

2月12日 遞推 數的劃分(後半部分)

這三道題乍一看可能差不多,實際上還是有一定區別在其中。總而言之 1 要我們把乙個數i分成j個數,使這j個數加起來等於i。2 第二題就是比第一題要多考慮個零。放 1 include using namespace std int n,m long long f 55 55 int main for i...