リンクリスト操作の実践:ノード交換、削除、交点検出、循環検出
リンクリストのノード交換
反復解法
ListNode* swapPairs(ListNode* head) {
if(!head || !head->next) return head;
ListNode dummy(0);
dummy.next = head;
ListNode* prev = &dummy;
ListNode* curr = head;
while(curr && curr->next) {
ListNode* nextNode = curr->next;
// ノード交換
prev->n ...
5月20日 14:29 投稿
リンクリストの要素削除、設計、および逆転
Leetcode - 203 リンクリストの要素削除
この問題のシンプルな解決法は、削除する要素の位置を判断し、2つの場合を分けることです。削除する要素が先頭であるか、そうでないかです。先頭削除の場合は、一時的なポインタを作成し、頭のポインタを更新します。非先頭削除の場合は、前後の要素を連結します。
/**
* Definition for singly-linked list.
* struct ListNode { ...
5月19日 19:51 投稿
C言語を用いたWindowsコンソール版スネークゲームの実装手順
Windowsプラットフォーム上で標準ライブラリとWin32 APIを活用し、コンソール画面に表示されるスネークゲームを作成する方法を解説します。本手法はGUIフレームワークに依存しないため、リソース消費が小さく、アルゴリズムの理解やシステムコールの学習に適しています。
データ構造と状態管理
蛇の本体は単方向連結リストで管理します。各ノードは現在地座標と次ノードへ ...
5月13日 12:03 投稿