反轉鍊錶(c 實現)

2021-10-03 16:07:34 字數 1201 閱讀 7384

template

<

class

t>

class

listnode

;

template

<

class

t>

class

list

反轉鍊錶-1

1、首先若煉表為空或只有乙個元素,不需要反轉,否則到2

2、定義三個指標p,q,r,p=head它們的關係為p->q->r

3、令q->p,若r為尾節點,則令r->q,head=nullptr,交換head與tail後結束

4、否則令p=q,q=r,r=r->next返回3

例 head->a->b->tail

head<-a->b->tail

head<-a<-b->tail 尾節點指標反**head<-a<-b<-tail 交換頭尾節點:tail<-a<-b<-head

void

reslist()

listnode

*p,*q,

*r; p = head;

q = p-

>next;

r = q-

>next;

while

(true

)else

}return

;}

反轉鍊錶——1:後面節點插到前面

1、首先若煉表為空或只有乙個元素,不需要反轉,否則到2

2、定義三個指標p,q,r,p->q->r其中p始終指向初始鍊錶的起始元素

3、將q從p,r之間拿出插入到head後面,若r是尾節點,結束

4、否則p不變,q=p->next,r=q->next,組成p->q->r後,回到3

void

reslist_ins()

listnode

*p,*q,

*r; p = head-

>next;

q = p-

>next;

r = q-

>next;

while

(true

)else

}return

;}

劍指offer 反轉鍊錶,C 實現(鍊錶)

1.題目 struct listnode 2.思路 反轉鍊錶輔助指標 定義三個用於翻轉鍊錶的輔助指標和乙個用於表示翻轉煉表頭結點的指標,node指向當前節點 left指向當前節點的前乙個節點 right指向當前節點的下乙個節點 reversehead指向翻轉鍊錶的頭結點。翻轉鍊錶過程 迴圈翻轉鍊錶,...

反轉鍊錶 C語言實現

題目要求 在o n 的時間內反轉鍊錶,並返回反轉後鍊錶的頭指標。分析 求解鍊錶問題首先一定要考慮非空問題,而且要注意終止的位置。如圖所示,反轉的時候定義三個節點,pcur代表當前節點 pnext代表指向的下乙個節點 ppre代表前乙個節點。有了這三個節點就可以從前往後遍歷,而且保證鍊錶不會斷裂!in...

java實現鍊錶反轉

完整 及詳細的注釋如下 package com.dhasa.test company dhasa author dl public class linkedlistdemo class linkedlist public void sethead node head 內部類node author d...