lintcode——交換鍊錶當中兩個節點
說明:主要是考查操作鍊錶,如果直接改變節點的權值就失去了做題的意義,**首先查詢節點所在的位置,然後交換節點,注意有乙個為頭節點的特殊情況;
listnode * swapnodes(listnode * head, int v1, int v2)
if(curnode -> val == v2)
if(!bv1)
if(!bv2)
curnode = curnode -> next;
}//如果沒找到,直接返回
if( !(bv1 && bv2) )
return head;
//按先後排序v1,v2
if(iv1 > iv2)
//處理節點,注意頭結點的特殊情況
listnode *v2nextnode = v2node -> next;
v2nodepre -> next = v1node;
v2node -> next = v1node -> next;
v1node -> next = v2nextnode;
if(v1node == head)
else
v1nodepre -> next = v2node;
return head;
}};
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 交換鍊錶當中兩個節點
給你乙個鍊錶以及兩個權值v1和v2,交換鍊錶中權值為v1和v2的這兩個節點。保證鍊錶中節點權值各不相同,如果沒有找到對應節點,那麼什麼也不用做。注意事項 你需要交換兩個節點而不是改變節點的權值 樣例 給出鍊錶 1 2 3 4 null 以及 v1 2 v2 4 返回結果 1 4 3 2 null。就...