更新時間:2022-08-18 10:40:54 來源:動力節點 瀏覽1151次
鏈式存儲結構一般有單鏈表、靜態鏈表、循環鏈表和雙向鏈表。那么,單鏈表的逆置方法有哪些?動力節點小編來為大家解答。
主要思路:遍歷的過程中,將遍歷的每一個元素依次插入到表頭header之后
代碼如下:
void ReverseList(LinkList& head)
{
LinkList p,q;
p = head->next;
head->next = NULL;
while (p)
{
q = p;
p = p->next;
q->next = head->next;
head->next = q;
}
}
主要思路:重新創建一個新表,遍歷鏈表依次將元素插入到新表的頭結點
代碼如下:
void ReverseList(LinkList& L)
{
LinkList cur ,newlist, p;
cur = L->next;
newlist = NULL;
while(cur)
{
p = cur;
cur = cur->next;
p->next = newlist;
newlist = p;
}
L = newlist;
}
代碼如下(示例):
Status ReverseList(ListLink L)
{
LinkList p = L;
if (p && p->next) //鏈表為空直接返回,而H->next為空是遞歸基
return p;
LinkList q = ReverseList(p->next); //一直循環到鏈尾
p->next->next = p; //翻轉鏈表的指向
p->next = NULL; //記得賦值NULL,防止鏈表錯亂
return q; //新鏈表頭永遠指向的是原鏈表的鏈尾
}
以上就是關于“3種單鏈表的逆置方法”介紹,大家如果想了解更多相關知識,可以關注一下動力節點的Java堆棧,里面有更豐富的知識等著大家去學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習