LintCode 交換鍊錶當中兩個節點

2021-08-08 15:08:35 字數 750 閱讀 4245

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

注意事項

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

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

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

就是利用兩個節點的前驅,本身一頓操作,記錄一下。直接看**:

/**

* definition for singly-linked list.

* public class listnode

* }*/public

class

solution

while(l2!=null && l2.val!=v2)

if(l1==null ||l2==null)

if(pre2==l1)

if(pre1==l2)

if(n1//不是相鄰的時候,l1在前面

listnode temp=l1.next;

l1.next=l2.next;

pre2.next=l1;

l2.next=temp;

pre1.next=l2;

return first.next;

}if(n1>n2)

return first.next;

}}

交換時候的具體操作,畫一畫就清楚了。

LintCode 交換鍊錶當中兩個節點

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

LintCode 交換鍊錶當中兩個節點

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

LINTCODE 交換鍊錶當中兩個節點

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