2つの交換チェーンテーブルのノードは1つのチェーンテーブルに与えられ、2つのノードはそのノードを交換し、交換後のチェーンテーブルに戻ります.
728 ワード
問題の説明:チェーンテーブルを1つ、ノードを2つ交換し、交換後のチェーンテーブルに戻ります.
サンプル
問題解決の考え方:チェーンテーブルのノードの値を直接交換します.
実験コード:
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つのポインタを移動しなければならない.
サンプル
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つのポインタを移動しなければならない.