單鏈表去重與刪重(C )

2021-07-23 13:14:55 字數 1059 閱讀 4913

單鏈表**去重**:這裡是指將單鏈表重複出現的資料元素刪掉重複的,也即刪掉多餘的,只保留乙個。 單鏈表**刪重**:即只要重複出現的,就全部刪掉了,乙個都不要了,題目來自《劍指offer》。 題目描述:

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。 例如,鍊錶1->2->3->3->4->4->5 處理後為 1->2->5

去重思路:

1.首先遍歷一遍鍊錶,將所有元素存入陣列n。

2.再次從頭遍歷,判斷資料是否在陣列中存在,有個小細節,是不必拿出陣列裡每乙個數去對比,而是在此次遍歷之前位置上的資料。若存在,刪掉該節點。

刪重思路:

去重**:

node* list:

:deleteduplication()

n[i++

]= temp->data;

//注意尾節點資料不要丟失

// for(int j=0;j// cout //再次指向頭節點

while

(temp->next!=

null

)//再遍歷去重}}

return m_plist;

}

刪重**:

node* list:

:deleteduplication()

//重複的都刪掉

n[i++

]= temp->data;

i=0; temp=m_plist;

while

(temp->next!=

null)}

}for

(int j=

0;j}for

(int j=

0;jreturn m_plist;

}

驗證**domo.cpp:

#include

#include

"list.h"

using namespace std;

intmain

(void

)

單鏈表練習1 去重

在進行單鏈表去重之前,我們先來考慮一下,陣列如何就地去重。我們可以很容易的編寫出這樣的 如果通過正向遍歷來刪除的話,就要注意控制遍歷的長度。function arrremoverepeatfront arr index 注意看index 是在if裡面還是外面。return arr 好,我們借鑑上面的...

C 陣列去重

比如我們有這樣乙個陣列 string array 去重後的陣列 array 方法名 delarraysame 功能 刪除陣列中重複的元素 所要檢查刪除的陣列 返回陣列 public string delarraysame string temparray string newstr string n...

去重與去空案例

去除資料裡面所有na 或者資料單一的列。使用的方法為迴圈,對所有的列進行判斷。columns detail.columns 取出所有的列 drop list for column in columns print column 進行去重,在一列下,資料一樣的進行去重 res detail.drop ...