0

重複の可能性:
単一リンクリストを逆にする

リンクを検索しました。単一リンクリストを逆にしますが、実際には答えが得られませんでした。だから私はこの質問を再開します。

リンクリストを逆にしようとしています。関数は次のとおりです。

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; 
4

0 に答える 0