單鏈表逆置

2021-06-27 04:39:49 字數 1183 閱讀 8086

/*

name: 單鏈表逆置 

author: 巧若拙 

date: 22-11-14 16:13

description: 

分別用遞迴和非遞迴兩種方式實現單鏈表(不含頭結點)的逆置 

*/#include

#include

#include

typedef char elemtype;

typedef int status; //函式型別,其值是函式結果狀態**,如ok等 

typedef struct node node, *linklist;

void creatlist(linklist *head);//建立乙個不帶頭結點的單鏈表 

void displaylist(linklist head);//輸出單鏈表的所有結點 

void reverselist(linklist *head);//逆置單鏈表方法1 

linklist reverselist_2(linklist head);//逆置單鏈表方法2 

linklist reverselist_3(linklist head, node *pre);//逆置單鏈表方法3(遞迴),確保head非空 

int main(void)

void creatlist(linklist *head)//建立乙個不帶頭結點的單鏈表 

p = *head;

p->data = 'a';

p->next = null;

for (i=1; i<10; i++)//建立其餘的結點 

s->data = i + 'a';

s->next = null;

p->next = s;

p = p->next;}}

void displaylist(linklist head)//輸出單鏈表的所有結點 

printf("\n");

}void reverselist_1(linklist *head)//逆置單鏈表方法1 

*head = left;

}linklist reverselist_2(linklist head)//逆置單鏈表方法2 

return left;

}linklist reverselist_3(linklist head, node *pre)//逆置單鏈表方法3(遞迴),確保head非空 

單鏈表逆置

單鏈表逆置 include include define item num 10 typedef struct tagnode node node linklist create void linklist destroy node head void linklist print node hea...

單鏈表逆置

最近在leetcode oj上刷題,將一些演算法題的解法記錄下來,也期待一些新的更好的方法。題目是這樣滴 206.reverse linked list reverse a singly linked list.hint a linked list can be reversed either it...

單鏈表逆置

明確題目要求不能使用額外的節點儲存空間,額外的節點儲存空間做中轉。在不使用額外儲存節點的情況下使乙個單鏈表的所有節點逆序?可以通過迭代迴圈的思想來處理 使用頭指標依次向後遍歷,遇到資料結點時將相鄰的兩個前驅後繼的關係進行乙個逆置 首先考慮到頭節點時空結點,略去頭結點並釋放 struct node p...