2つの交換チェーンテーブルのノードは1つのチェーンテーブルに与えられ、2つのノードはそのノードを交換し、交換後のチェーンテーブルに戻ります.

728 ワード

問題の説明:チェーンテーブルを1つ、ノードを2つ交換し、交換後のチェーンテーブルに戻ります.
サンプル1->2->3->4が与えられ、戻るべきチェーンテーブルは2->1->4->3です.
問題解決の考え方:チェーンテーブルのノードの値を直接交換します.
実験コード:
class Solution { public:    /**      * @param head a ListNode      * @return a ListNode      */    ListNode* swapPairs(ListNode* head){        //Write your code here         ListNode *p;         p=head;                 if(head==NULL)        return NULL;        while(p!=NULL&&p->next!=NULL)        {           int x;          x=p->val;          p->val=p->next->val;          p->next->val=x;          p=p->next->next;        }        return head;     } };
個人的な悟り:ループを行うときは一度に2つのポインタを移動しなければならない.