1.最簡單的方法:
創新互聯專注于企業成都全網營銷、網站重做改版、蘇州網站定制設計、自適應品牌網站建設、H5高端網站建設、購物商城網站建設、集團公司官網建設、成都外貿網站建設、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為蘇州等各大城市提供網站開發制作服務。
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數組和String相互轉化
}
鏈表反轉
單向鏈表的反轉是一個經常被問到的一個面試題,也是一個非常基礎的問題。比如一個鏈表是這樣的: 1-2-3-4-5 通過反轉后成為5-4-3-2-1。最容易想到的方法遍歷一遍鏈表,利用一個輔助指針,存儲遍歷過程中當前指針指向的下一個元素,然后將當前節點元素的指針反轉后,利用已經存儲的指針往后面繼續遍歷。源代碼如下:
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;
}
還有一種利用遞歸的方法。這種方法的基本思想是在反轉當前節點之前先調用遞歸函數反轉后續節點。源代碼如下。不過這個方法有一個缺點,就是在反轉后的最后一個結點會形成一個環,所以必須將函數的返回的節點的next域置為NULL。因為要改變head指針,所以我用了引用。算法的源代碼如下:
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;
}
}
逆置有兩種方法,第一是把所有節點反過來。還有一種就是改變節點中的值。
第一種情況,其實可以考慮用頭插法,來實現逆置。
下面的算法是基于頭插法的思想,逆置鏈表的,僅供參考。
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;
}
}
分享標題:手寫代碼反轉鏈表java java單鏈表反轉代碼
瀏覽地址:http://m.newbst.com/article20/dddojco.html
成都網站建設公司_創新互聯,為您提供品牌網站建設、定制網站、手機網站建設、微信公眾號、ChatGPT、全網營銷推廣
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯