劍指 18 2 刪除鍊錶中重複的結點

2021-08-20 15:37:04 字數 2034 閱讀 6111

題目描述

演算法分析

提交**(1):使用標誌位來判別不同情況

class solution 

if (headflag)

else

else

}} return phead;

}};

提交**(2):建立乙個頭結點,避免phead被刪除的情況

class solution 

listnode* temp = currnode;

currnode = currnode->next;

prenode->next = currnode;

delete temp;

}else

}return pnewhead->next;

}};

提交**(3):遞迴方法
class solution 

else

}};

測試**:

// ********************測試**********************

void test(char* testname, listnode* phead, int* expectedvalues, int expectedlength)

if (pnode == nullptr && index == expectedlength)

printf("passed.\n");

else

printf("failed.\n");

}// 某些結點是重複的

void test1()

; test("test1", phead, expectedvalues, sizeof(expectedvalues) / sizeof(int));

//destroylist(phead);

}// 沒有重複的結點

void test2()

; test("test2", phead, expectedvalues, sizeof(expectedvalues) / sizeof(int));

//destroylist(phead);

}// 除了乙個結點之外其他所有結點的值都相同

void test3()

; test("test3", phead, expectedvalues, sizeof(expectedvalues) / sizeof(int));

//destroylist(phead);

}// 所有結點的值都相同

void test4()

// 所有結點都成對出現

void test5()

// 除了兩個結點之外其他結點都成對出現

void test6()

; test("test6", phead, expectedvalues, sizeof(expectedvalues) / sizeof(int));

//destroylist(phead);

}// 鍊錶中只有兩個不重複的結點

void test7()

; test("test7", phead, expectedvalues, sizeof(expectedvalues) / sizeof(int));

//destroylist(phead);

}// 結點中只有乙個結點

void test8()

; test("test8", phead, expectedvalues, sizeof(expectedvalues) / sizeof(int));

//destroylist(phead);

}// 結點中只有兩個重複的結點

void test9()

// 空鍊錶

void test10()

int main(int argc, char* argv)

劍指offer 刪除鍊錶中重複的結點(鍊錶)

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 class solution listnode ans newlistnode 1 ans next phead listnode link a...

劍指Offer 鍊錶 刪除鍊錶中重複的結點

題目 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5。注意該鍊錶為排序鍊錶,重複的節點不保留哦!public class listnode 1 遞迴 遞迴的方法就像是先判斷第乙個節點和之後的節...

劍指offer 刪除鍊錶中重複的結點

華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 10 8 題目描述 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 解析 做這道題目給我的感覺是跟鍊錶反轉一樣,需要考慮節點之間指...