Re: [問題] About link list reverse
看板C_and_CPP (C/C++)作者firejox (Tangent)時間15年前 (2011/07/04 19:34)推噓5(5推 0噓 11→)留言16則, 5人參與討論串2/2 (看更多)
※ 引述《cora (大熱豔陽天)》之銘言:
: c語言
: Question:Link list reverse code不了解
: Input):一串數值
: Expected Output):反轉
: 一直搞不懂原因,煩請了解的指導一二或圖解…初碰point實在不容易啊
: //global:
: typedef struct Node {
: int data;
: struct Node *next;
: }LinkList;
: int link_reverse(LinkList **reverse, LinkList *merge)
: {
: //merge:為任意一串數值
: //reverse:為反轉後output
: LinkList *in = NULL, *ptr1 = NULL, *new = NULL;
: in = merge;
: while (in != NULL) {
: ptr1 = in->next;
: in->next = new;//*** ?????看不懂用意????? ***//
: new = in;//*** ?????new為何不會被替換????? ***//
: in = ptr1;
: }
: *reverse = new;
: return 0;
: }
紙筆一畫就很明瞭了...
merge: █ → █ → █ → █ → █ → █ → █
一開始: █ → █ → █ → █ → █ → █ → █
↑ ∣ ↑
in ∣ ptr1
↓
in->next
new(NULL)
new = in
↓
接著: █ → (NULL)
█ → █ → █ → █ → █ → █
↑
ptr1
new
↓
接下來: █ → (NULL)
█ → █ → █ → █ → █ → █
↑
in = ptr1
-------------------------------------------------------------
第二次:
new
↓
█ → (NULL)
↑
(下一步)∣
╰in->next
↓
█ → █ → █ → █ → █ → █
↑ ↑
in ptr1
┌─new
n │ ↓
e │ █ → (NULL)
w │ ↑
∥│ ∣in->next
i │ ∣
n └→█ █ → █ → █ → █ → █
↑ ↑
in ptr1
※ 編輯: firejox 來自: 123.240.129.15 (07/04 20:29)
推
07/04 20:27, , 1F
07/04 20:27, 1F
→
07/04 20:28, , 2F
07/04 20:28, 2F
※ 編輯: firejox 來自: 123.240.129.15 (07/04 20:30)
→
07/04 20:44, , 3F
07/04 20:44, 3F
推
07/04 20:47, , 4F
07/04 20:47, 4F
→
07/04 20:49, , 5F
07/04 20:49, 5F
→
07/04 20:49, , 6F
07/04 20:49, 6F
推
07/04 21:47, , 7F
07/04 21:47, 7F
→
07/04 21:49, , 8F
07/04 21:49, 8F
→
07/04 22:07, , 9F
07/04 22:07, 9F
→
07/05 11:33, , 10F
07/05 11:33, 10F
→
07/05 20:50, , 11F
07/05 20:50, 11F
推
07/05 23:09, , 12F
07/05 23:09, 12F
推
07/05 23:48, , 13F
07/05 23:48, 13F
→
07/05 23:50, , 14F
07/05 23:50, 14F
→
07/05 23:50, , 15F
07/05 23:50, 15F
→
07/05 23:59, , 16F
07/05 23:59, 16F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章