LintCode 交換鍊錶當中兩個節點

2021-08-07 08:58:53 字數 725 閱讀 8092

交換鍊錶當中兩個節點

描述

給你乙個鍊錶以及兩個權值v1和v2,交換鍊錶中權值為v1和v2的這兩個節點。保證鍊錶中節點權值各不相同,如果沒有找到對應節點,那麼什麼也不用做。

注意事項

你需要交換兩個節點而不是改變節點的權值

樣例給出鍊錶 1->2->3->4->null ,以及 v1 = 2 , v2 = 4

返回結果 1->4->3->2->null。

由於要同時記錄兩個指標的pre、next,所以要注意head->val==v1(v2)的情況,先將遍歷指標指向head並儲存乙份最後返回。

還有乙個比較坑的地方是v1->next==v2或者反過來的情況,這種情況下如果不做處理的話會導致v2=v1->next造成迴圈,跑出來是mle。

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

if(p->next->val==v2)

p=p->next;

}if(v1p!=null && v2p!=null)

else

if(v2o->next==v1o)

else

}return h->next;

}};

LintCode 交換鍊錶當中兩個節點

給你乙個鍊錶以及兩個權值v1和v2,交換鍊錶中權值為v1和v2的這兩個節點。保證鍊錶中節點權值各不相同,如果沒有找到對應節點,那麼什麼也不用做。注意事項 你需要交換兩個節點而不是改變節點的權值 您在真實的面試中是否遇到過這個題?yes 樣例給出鍊錶1 2 3 4 null,以及v1 2,v2 4 返...

LINTCODE 交換鍊錶當中兩個節點

lintcode 交換鍊錶當中兩個節點 說明 主要是考查操作鍊錶,如果直接改變節點的權值就失去了做題的意義,首先查詢節點所在的位置,然後交換節點,注意有乙個為頭節點的特殊情況 listnode swapnodes listnode head,int v1,int v2 if curnode val ...

LintCode 交換鍊錶當中兩個節點

給你乙個鍊錶以及兩個權值v1和v2,交換鍊錶中權值為v1和v2的這兩個節點。保證鍊錶中節點權值各不相同,如果沒有找到對應節點,那麼什麼也不用做。注意事項 你需要交換兩個節點而不是改變節點的權值 樣例 給出鍊錶 1 2 3 4 null 以及 v1 2 v2 4 返回結果 1 4 3 2 null。就...