交換鍊錶當中兩個節點

2021-07-14 20:36:57 字數 865 閱讀 8540

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