單連結串列的逆序輸出 PTA6-1 單連結串列逆轉 為例
#include <stdio.h>
#include <stdlib.h>
typedef int ElementType;
typedef struct Node *PtrToNode;
struct Node {
ElementType Data;
PtrToNode Next;
};
typedef PtrToNode List;
List Read(); /* 細節在此不表 */
void Print( List L ); /* 細節在此不表 */
List Reverse( List L );
int main()
{
List L1, L2;
L1 = Read();
L2 = Reverse(L1);
Print(L1);
Print(L2);
return 0;
}
/* 你的程式碼將被嵌在這裡 */
//以下方法的每一個節點都是有意義的沒有為了方便操作而新增的頭節點
List Reverse(List L){//迴圈實現
if(L==NULL||L->Next==NULL)//空連結串列或者單個節點
return L;
List p1,p2,p3;
p1=L;
p2=L->Next;
p3=NULL;
L->Next=NULL;//避免形成環
while(p2!=NULL){
p3=p2;
p2=p2->Next;
p3->Next=p1;
p1=p3;
}
return p1;
}
List Reverse(List L){//遞迴實現
if(L==NULL)return NULL;//空連結串列
if(L->Next==NULL)return L;//單個節點的連結串列
List head=Reverse(L->Next);
L->Next->Next=L;
L->Next=NULL;//斷開避免成環
return head;
}
相關文章
- 55-將單連結串列原地逆置(有頭結點的單連結串列)
- 連結串列 - 單向連結串列
- 連結串列逆序
- 連結串列-單連結串列實現
- 單連結串列
- 資料結構-單連結串列、雙連結串列資料結構
- 單連結串列倒數第k結點輸出
- 單雙連結串列
- 逆置連結串列
- 單連結串列建立連結串列出現問題
- 單連結串列的建立
- c語言單向連結串列逆轉實現方法C語言
- 反轉一個單連結串列。
- [連結串列】2.輸入一個連結串列,反轉連結串列後,輸出新連結串列的表頭。[多益,位元組考過]
- 簡單的單向連結串列
- 資料結構實驗之連結串列二:逆序建立連結串列資料結構
- 資料結構與演算法——連結串列 Linked List(單連結串列、雙向連結串列、單向環形連結串列-Josephu 問題)資料結構演算法
- 用遞迴的方法將單連結串列逆向輸出遞迴
- 棧_單向連結串列
- 12.19單向連結串列
- 單連結串列成環
- 單向連結串列的建立
- 連結串列基礎2(超簡單)--單連結串列的插入和刪除
- 反轉相鄰連結串列單元
- 資料結構和演算法——Go實現單連結串列並且反轉單連結串列資料結構演算法Go
- 資料結構實驗之連結串列五:單連結串列的拆分資料結構
- 資料結構之連結串列篇(單連結串列的常見操作)資料結構
- 資料結構實驗之連結串列三:連結串列的逆置資料結構
- 資料結構--陣列、單向連結串列、雙向連結串列資料結構陣列
- 【連結串列問題】刪除單連結串列的中間節點
- 單連結串列逆位表示的 2 個整數求和
- 定義一個函式,輸入一個連結串列的頭節點,反轉該連結串列並輸出反轉後連結串列的頭節點函式
- 佇列_單向連結串列佇列
- 單向迴圈連結串列
- 單連結串列學習(一)
- 10單向連結串列(slist)
- Python實現單連結串列Python
- 【資料結構】連結串列(單連結串列實現+詳解+原碼)資料結構