給你乙個鍊錶以及兩個權值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 ...