欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

手寫代碼反轉(zhuǎn)鏈表java java單鏈表反轉(zhuǎn)代碼

幾種常用的java 實(shí)現(xiàn)反轉(zhuǎn)的方法

1.最簡單的方法:

創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、蘇州網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)購物商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為蘇州等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

public?static?String?reverse1(String?str)

{

return?new?StringBuffer(str).reverse().toString();

}

2.最常用的方法:

public?static?String?reverse3(String?s)

{?

char[]?array?=?s.toCharArray();?

String?reverse?=?"";??//注意這是空串,不是null

for?(int?i?=?array.length?-?1;?i?=?0;?i--)?

reverse?+=?array[i];?

return?reverse;?

}?

3.常用方法的變形:

public?static?String?reverse2(String?s)

{?

int?length?=?s.length();?

String?reverse?=?"";??//注意這是空串,不是null

for?(int?i?=?0;?i??length;?i++)?

reverse?=?s.charAt(i)?+?reverse;//在字符串前面連接,??而非常見的后面

return?reverse;?

}?

4.C語言中常用的方法:

public?static?String?reverse5(String?orig)

{?

char[]?s?=?orig.toCharArray();?

int?n?=?s.length?-?1;?

int?halfLength?=?n?/?2;?

for?(int?i?=?0;?i?=?halfLength;?i++)?{?

char?temp?=?s[i];?

s[i]?=?s[n?-?i];?

s[n?-?i]?=?temp;?

}?

return?new?String(s);??//知道??char數(shù)組和String相互轉(zhuǎn)化

}

如何鏈表反轉(zhuǎn)

鏈表反轉(zhuǎn)

單向鏈表的反轉(zhuǎn)是一個經(jīng)常被問到的一個面試題,也是一個非常基礎(chǔ)的問題。比如一個鏈表是這樣的: 1-2-3-4-5 通過反轉(zhuǎn)后成為5-4-3-2-1。最容易想到的方法遍歷一遍鏈表,利用一個輔助指針,存儲遍歷過程中當(dāng)前指針指向的下一個元素,然后將當(dāng)前節(jié)點(diǎn)元素的指針反轉(zhuǎn)后,利用已經(jīng)存儲的指針往后面繼續(xù)遍歷。源代碼如下:

struct linka {

int data;

linka* next;

};

void reverse(linka* head)

{

if(head ==NULL)

return;

linka*pre, *cur, *ne;

pre=head;

cur=head-next;

while(cur)

{

ne = cur-next;

cur-next = pre;

pre = cur;

cur = ne;

}

head-next = NULL;

head = pre;

}

還有一種利用遞歸的方法。這種方法的基本思想是在反轉(zhuǎn)當(dāng)前節(jié)點(diǎn)之前先調(diào)用遞歸函數(shù)反轉(zhuǎn)后續(xù)節(jié)點(diǎn)。源代碼如下。不過這個方法有一個缺點(diǎn),就是在反轉(zhuǎn)后的最后一個結(jié)點(diǎn)會形成一個環(huán),所以必須將函數(shù)的返回的節(jié)點(diǎn)的next域置為NULL。因?yàn)橐淖僪ead指針,所以我用了引用。算法的源代碼如下:

linka* reverse(linka* p,linka* head)

{

if(p == NULL || p-next == NULL)

{

head=p;

return p;

}

else

{

linka* tmp = reverse(p-next,head);

tmp-next = p;

return p;

}

}

用java來編寫一個單鏈表類的成員函數(shù),實(shí)現(xiàn)對頭結(jié)點(diǎn)的單鏈表就地逆置的操作

逆置有兩種方法,第一是把所有節(jié)點(diǎn)反過來。還有一種就是改變節(jié)點(diǎn)中的值。

第一種情況,其實(shí)可以考慮用頭插法,來實(shí)現(xiàn)逆置。

下面的算法是基于頭插法的思想,逆置鏈表的,僅供參考。

LinkList anti_linklist(LinkList demo)

{

LInkList *p,*q;//work pointer

LinkList head;

head=new LinkList();

head-next=null;//init head pointer

p=demo-head-next;//make p points to the first node

if(p==null)

return null;//the linklist is null

while(p!=null)

{

q=p;

q-next=head-next;

head-next=q;

p=p-next;

}

}

分享標(biāo)題:手寫代碼反轉(zhuǎn)鏈表java java單鏈表反轉(zhuǎn)代碼
瀏覽地址:http://www.chinadenli.net/article20/dddojco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)定制網(wǎng)站手機(jī)網(wǎng)站建設(shè)微信公眾號ChatGPT全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)