將鍊錶後半部分的節點插入到前半部分節點,使得鍊錶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...