題目描述
實現從無序鍊錶中移除重複項,並保持原有順序
head->0->5->3->2->4->3->1->0 => head->0->5->3->2->4->1
解題思路
1.從第乙個元素開始,遍歷鍊錶比較重複元素並刪除重複元素(雙重迴圈)
2.空間換時間(hashset判斷是否有該節點)(hash方法和equals方法的作用)
public class arch_03
public static void removerepeatnode1(node head)elseelse}}
cur=cur.next;
} }public static void removerepeatnode2(node head)else
} }}
分析:
1.雙重迴圈的方法是乙個笨辦法,時間複雜度o(n^2)
2.用空間換時間是乙個比較常見的思路,但是要輸入理解hashcode()和equals()方法
如何從無序鍊錶中移除重複項 Java版
題目描述 給定乙個沒有排序的鍊錶,去掉其重複項,並保留原順序,如鍊表1 3 1 5 5 7,去掉重複項變為1 3 5 7。方法一 順序刪除 思路 通過雙重迴圈直接在鍊錶上執行刪除操作。外層迴圈用乙個指標從第乙個節點開始遍歷整個鍊錶,然後內層迴圈用另乙個指標遍歷其餘節點,將與外層迴圈遍歷到的指標所指節...
python實現從無序的鍊錶中刪除重複項
題目描述 給定乙個沒有排序的鍊錶,去掉其重複項,並保留原順序,例如鍊錶 1 3 1一 5一 5 7,去掉重複項後變為 l一 3一 5 7。分析與解答 順序刪除 主要思路為 通過雙重迴圈直接在鍊錶上進行刪除操作 外層迴圈用乙個指標從第乙個 結點開始遍歷整個鍊錶,然後內層迴圈用另外乙個指標遍歷其餘結點 ...
無序鍊錶去除重複項
def listflushbyset inputlist 集合去重 newlist list set inputlist print newlist 空間換時間 def flushlist inputlist objlist for i in range 0,len inputlist length...