2017-10-05 37 views
-2

實施例#1curr_node.ptr =&(next_node.ptr);和curr_node.ptr =&next_node

#include <stdio.h> 

struct node{ 
    struct node *next; 
    char *data; 
}; 

struct node *reverse_list(struct node *head) 
{ 
    struct node *curr, *prev, *next; 
    curr = head; 
    prev = NULL; 
    next = curr->next; 
    while(curr != NULL){ 
     next = curr->next; 
     curr->next = prev; 
     prev = curr; 
     curr = next; 
    } 
    return prev; 
} 

int main(){ 
    struct node *reverse_list(); 
    return 0; 
} 

我的理解:

此代碼描述的鏈接,每一個指針指向下一個節點的值(或節點的開始),不知它是一個基本和簡單的結構。 但是,如果我們希望所有的指針指向下一個指針然後將其反向呢?當所有的指針都指向指針時,我們想要反轉它,這個過程似乎很複雜。

即,

curr_node.ptr = &(next_node.ptr);

NOT:curr_node.ptr = & next_node

回答

1

curr_node.ptr = &(next_node.ptr)得到的ptrnext_node的住址wherease curr_node.ptr = &next_node得到的next_node

的住址如果您正在尋找扭轉你的鏈表,只是谷歌接下來

如何扭轉用C

鏈表在github上類似的東西

rev_list.c 。

希望它有幫助。

薩科

+0

我已經嘗試過了,但我意識到,有一些細節,當我試圖實現在PTR 2 PTR鏈表反轉功能。你知道一些代碼的例子嗎? thx –

+0

[my_rev_list.c](http://xf.iksaif.net/epitech/.rendu/piscine/Jour_11/my_rev_list.c) –