給你乙個鍊錶以及兩個權值v1和v2,交換鍊錶中權值為v1和v2的這兩個節點。保證鍊錶中節點權值各不相同,如果沒有找到對應節點,那麼什麼也不用做。
注意事項
你需要交換兩個節點而不是改變節點的權值
找到這兩個結點的前驅節點
node1prev node1
node2prev node2 node2next
利用上面五個結點進行鏈結
node1prev.next = node2;
node2.next = node1.next;
node2prev.next = node1;
node1.next = node2next;
/**
* definition for singly-linked list.
* public class listnode
* }*/public
class
solution else
if (cur.next.val == v2)
cur = cur.next;
}if (node1prev == null || node2prev == null)
if (node2prev.next == node1prev)
listnode node1 = node1prev.next;
listnode node2 = node2prev.next;
listnode node2next = node2.next;
if (node1prev.next == node2prev) else
return dummy.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 ...