單鏈表去重
package test04;
import java.util.*;
//定義節點結構
class Node {
int data;
Node next = null;
Node(int data) {
this.data = data;
}
}
public class test03 {
public static void main(String[] args) {
int [] arr=new int[] {5,4,4,3,3,2,1};
//定義一個for迴圈,每次在連結串列頭部插入元素,從而建立一個連結串列
Node head1=null;
for(int i=0;i<arr.length;i++){
Node node=new Node(arr[i]);
node.next=head1;
head1=node;
}
System.out.println("原來的連結串列: ");
Node temp1=head1;
while(temp1!=null){
System.out.print(temp1.data+" " );
temp1=temp1.next;
}
System.out.println();
Node head2 = deleteDuplication(head1);
System.out.println("去重後的連結串列: ");
Node temp2=head2;
while(temp2!=null){
System.out.print(temp2.data+" ");
temp2=temp2.next;
}
}
public static Node deleteDuplication(Node phead) {
HashSet<Integer> set = new HashSet<Integer>();
Node tempNode = phead;
while (tempNode != null) {
set.add(tempNode.data);
tempNode = tempNode.next;
}
//for迴圈,每次在連結串列的尾部插入元素,從而建立一個連結串列
Node head=null;
Node temp = head;
for (Integer num : set) {
Node node = new Node(num);
if(head==null){
head=node;
}else{
temp.next=node;
}
temp=node;
}
return head;
}
}
原來的連結串列:
1 2 3 3 4 4 5
去重後的連結串列:
1 2 3 4 5
相關推薦
單鏈表去重
package test04; import java.util.*; //定義節點結構 class Node { int data; Node next = null; Node(int data) { this.da
鏈表去重
oid node div brush data lis pre move clas private void RemoveDupNode(List<Node> list) { Node head =list[0]; Node p,q,r;
[leetcode]83. Remove Duplicates from Sorted List有序鏈表去重
nbsp IV element pan while mage next ima ret Given a sorted linked list, delete all duplicates such that each element appear only once. Ex
依據登入表統計累計線上人數(登入表去重問題)
實現效果: 以上為測試資料 登入表 結構 CREATE TABLE `d_user_login` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自動編號', `uid` bigint(20) NOT NULL
全表去重,欄位有null值,保留最大id的資料
delete from budget_history_report where exists (select * from (select year ,season,schoolId,ifnul
對單鏈表進行重排序
要求:形式如L0->L1->L2->L3-> ... ->Ln-1->Ln,要求重新排序成如下形式:L0->Ln->L1->Ln-1->…… 如給定連結串列為1->2->3->4->5->6,則重新排序後的結果為1
2122=數據結構實驗之鏈表七:單鏈表中重復元素的刪除
eof n) stdio.h for div printf code main 元素 1 #include <stdio.h> 2 #include <stdlib.h> 3 struct node 4 { 5 int
L2-002 鏈表去重
max code int 整數 font 不難 ble main ans L2-002 鏈表去重 (25 分) 給定一個帶整數鍵值的鏈表 L,你需要把其中絕對值重復的鍵值結點刪掉。即對每個鍵值 K,只有第一個絕對值等於 K 的結點被保留。同時,所有被刪除的結點
單鏈表查找最大值、兩個遞增的鏈表合並並且去重
lin esp new ace ext color 查找 class AI 單鏈表查找最大值 代碼: 1 #include<iostream> 2 #include<bits/stdc++.h> 3 using namespace std;
單鏈表的合併【去重】
//-------2個有序單鏈表的合併------ void Mergelist_L(LinkList &LA,LinkList &LB,LinkList &LC) { p
PTAL2-002 連結串列去重解題報告---簡單鏈表實現
L2-002 連結串列去重 (25 分) 給定一個
單鏈表練習1--去重
在進行單鏈表去重之前,我們先來考慮一下,陣列如何就地去重。 我們可以很容易的編寫出這樣的程式碼: 如果通過正向遍歷來刪除的話,就要注意控制遍歷的長度。 function arrRemoveRepeatFront(arr) { for(var i=0; i<arr.
[轉抄]oracle單表查詢去重(效率比較高的一種方式)
sel select 單表查詢 效率 查詢 rownum 說明 acl 分組 1 select 2 * 3 from 4 ( 5 select 6 a.*, rownum r_n 7
鏈表 | 去除遞增有序單鏈表中的重復元素
圖片 std nbsp using typedef 鏈表 color span while 王道P37T12 主代碼: void delete_common(LinkList& L){ LNode* pre=L,*p=L->next; whi
重學資料結構(一)單鏈表
最近在重新學習資料結構,特此記錄學習過程,碼農再次上線 關於單鏈表的一些基本操作,以下為基本思路程式碼 首先看一張直觀圖 連結串列的結構體定義如下(為簡便,這裡的ElemType採用int): //單鏈表 typedef struct LNode {
java程式碼實現MySQL資料庫表千萬條資料去重
準備工作: 1.資料庫表:datatest5 2.欄位: id 主鍵自增,val 重複值欄位併為val建立索引 3.設定innodb緩衝池大小 show variables like "%_buffer%"; SET GLOBAL innod
MySQL—增刪改查,分組,連表,limit,union,alter,排序,去重
MySQL增刪改查 在表格的增刪改查中,查的內容是最多的,包括group by ,join,limit,union,alter,排序都是服務於查的 #sql語句資料行操作補充 #增加: #insert into table_name(欄位1,欄位2)
SQL left join 左表合併去重技巧總結
建表: CREATE TABLE `table1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(60) DEFAULT NULL, `age` varchar(200) DEFAULT NULL,
使用SQL語句完成資料表的去重工作
引入問題 可能大家都遇到過這樣一種情況,一張表存在若干行資料,只是主鍵值相同,但是其它欄位都是相同的,這就是我們通常所說的資料庫重複資料,那我們是如何將這些資料刪除呢?現在我們就介紹一種方法來實現資料庫資料的去重工作。 模擬問題
mysql匯出去重的表
問題說明 用爬蟲採集的資料,本應該只有幾千條資料,結果好像無限迴圈,導致有幾十萬的資料,這個時候就需要去重了, 同時還要把資料匯出。 解決方法 >mysql -h127.0.0.1 -uroot -proot -e "select distinct