1. 程式人生 > >單鏈表去重

單鏈表去重

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