重複の可能性:
単一リンクリストを逆にする
リンクを検索しました。単一リンクリストを逆にしますが、実際には答えが得られませんでした。だから私はこの質問を再開します。
リンクリストを逆にしようとしています。関数は次のとおりです。
void reverse (SLINK list)
{
NODE *p_tmp_node;
SLINK p_tmp_list;
p_tmp_list = list->next;
list->next = NULL;
while (NULL != p_tmp_list)
{
p_tmp_node = p_tmp_list;
p_tmp_list = p_tmp_list->next; // A
p_tmp_node->next = list->next;
list->next = p_tmp_node;
//p_tmp_list = p_tmp_list->next; // B
}
}
私の質問は次 のとおりです。ステートメントAはステートメントBと同じですが、Aの代わりにBが実行された場合、期待される結果を得ることができませんでした。AとBの違いは何ですか?
ノード構造体は次のようになります。
typedef struct tag_node
{
int elem;
struct tag_node *next;
} NODE, *SLINK;