鍊錶的逆序問題 C語言

2021-09-03 07:13:48 字數 620 閱讀 4806

方法一 :   從第二個結點開始,把之後的每個結點都插入到第乙個結點之後,最後在把第乙個結點挪

到表尾 , 該方法中類似於煉表頭插法

struct stu *reserve(struct stu *head)

p->next=head;

head=p->next->next;

p->next->next=null;

return head;

方法二 :利用三個指標,在原來的基礎上進行逆序。這種方法比較實用,效率也高

struct listnode 

};listnode *reverselist(listnode *head)

//這裡翻轉完成之後起初的頭結點就是尾節點了。所以

head->next = null;

*head = p1;

return head;

}

總結:

方法一中需要建立乙個新的鍊錶,把遍歷的節點存到該新的鍊錶中

方法二是在原煉表中進行操作,在空間上要優於方法二

鍊錶逆序問題

傳送門 題目描述 有乙個單鏈表,請設計乙個演算法,使得每k個節點之間逆序,如果最後不夠k個節點一組,則不調整最後幾個節點。例如鍊錶1 2 3 4 5 6 7 8 null,k 3這個例子。調整後為,3 2 1 6 5 4 7 8 null。因為k 3,所以每三個節點之間逆序,但其中的7,8不調整,因...

C語言實現鍊錶逆序

寫在前面的是,對於c語言鍊錶逆序的看法 第一感覺是,我擦,這玩意什麼時候能用到啊。殘念。不過在面試中是會經常用到的,如果有需要的小夥伴,可以看看我總結到的一些心得體會吧。嗯,在做鍊錶逆序的時候先做乙個簡單的鍊錶出來 include include typedef int item 定義資料項型別 t...

C語言鍊錶操作(新增單向鍊錶的逆序建立)

眾所周知,鍊錶是資料結構的基礎,掌握鍊錶很重要!include include typedef struct node node,linklist linklist build linklist int t linklist r,p,head null while fscanf fp,d t 0 r...