成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

冒泡排序java 如何將單向鏈表逆序?

如何將單向鏈表逆序?如果head節(jié)點是l,那么就有p=q=l/*p,q是指向head節(jié)點的兩個指針*/while(p->next!=null)P=P->next/*讓P指向鍵列表中要訪問的最后

如何將單向鏈表逆序?

如果head節(jié)點是l,那么就有p=q=l/*p,q是指向head節(jié)點的兩個指針*/while(p->next!=null)P=P->next/*讓P指向鍵列表中要訪問的最后一個節(jié)點*/while(1){while(Q->next!=P)q=q->next/*讓q向后看以找到最后一個要打印的節(jié)點*/printf(%dn,P->data)P=q/*P向前移動a*/q=L/*q還指頭節(jié)點*/if(P=L)/*在訪問exit*/break之后}您可以引用它

問題:給出一個單向列表并從頭到尾反轉(zhuǎn)它。例如:a-B-C-D依次是D-C-B-a。分析:假設每個節(jié)點的結(jié)構是:復制如下代碼:類節(jié)點{char valuenode next},因為在反轉(zhuǎn)鏈表時,我們需要更新每個節(jié)點的“next”值。但是,在更新下一個值之前,需要保存下一個值,否則無法繼續(xù)。因此,我們需要兩個指針分別指向前一個節(jié)點和下一個節(jié)點。在更新當前節(jié)點的“next”值之后,我們向下移動這兩個節(jié)點,直到到達最后一個節(jié)點。代碼如下:public node reverse(node current){//initializationnode previousnode=nullnode nextnode=nullwhile(current!=null){//保存下一個nodenextnode=current.next//update當前.next//update“下一步”的值當前.下一個=previousNode//shift指針previousNode=currentcurrent=nextNode}return previousNode}上面的代碼使用非遞歸方法,也可以通過遞歸來解決。代碼如下:復制代碼如下:public node reverse(node current){if(current==null)|當前.下一個==null)返回currentNode nextNode=當前.nextcurrent.next=Nullnode reverserest=reverse(nextnode)return reverserest}遞歸方法實際上非常巧妙。它使用遞歸轉(zhuǎn)到鏈表的末尾,然后更新每個節(jié)點的下一個值(代碼的倒數(shù)第二句)。