單鏈表逆置 重排

2021-09-28 01:50:06 字數 630 閱讀 4410

單鏈表逆置:

思想:逆置鍊錶初始為空,表中結點從原煉表中依次取出,再採用頭插法逐個插入逆置鍊錶的表頭,使它成為逆置鍊錶的首元結點,迴圈操作,直到原煉表為空。

linklist reverselist( linklist head )

}return head; 

}

複雜度:時間複雜度o(n); 空間複雜度o(1)

思想:找到單鏈表的中間結點,然後將後半部分逆置,逆置採用頭插法,最後,把逆置的鍊錶依次插入前半部分。

struct lnode *reverselist( struct lnode *head )    //逆置單鏈表

}return head; 

}struct lnode *fun(struct lnode *l)else    

}r->next=p->next->next;

p->next->next=null;

r=reverselist(r);    //將後半部分逆置 

s=l->next;

q=s->next;

p=r->next;

while(p)

return l;

}

單鏈表逆置

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

單鏈表逆置

name 單鏈表逆置 author 巧若拙 date 22 11 14 16 13 description 分別用遞迴和非遞迴兩種方式實現單鏈表 不含頭結點 的逆置 include include include typedef char elemtype typedef int status 函式...

單鏈表逆置

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