線形リスト 練習問題1解答解説

練習問題2: *ndPtrPtr が指すリストに ndPtr が指すリストを結合して一つのリストにする関数 void listConcaten(node_t ** ndPtrPtr, node_t * ndPtr) を作れ.

*ndPtrPtr が指すリストの最後尾のノードを見つけて,そのノードの next を ndPtr の値に変更するだけである.ただし, *ndPtrPtr が NULLの場合は *ndPtrPtr の値を ndPtr に変更する.

void listConcaten(node_t ** ndPtrPtr, node_t * ndPtr)
{
    while (*ndPtrPtr != NULL) {
        ndPtrPtr = &((*ndPtrPtr)->next);
    }
    *ndPtrPtr = ndPtr;
}