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

2021-07-13 05:38:49 字數 1266 閱讀 9843

牛客oj:刪除鍊錶中重複的結點

九度oj:未收錄

github**: 057-刪除鍊錶中重複的結點

csdn題解:劍指offer–057-刪除鍊錶中重複的結點

牛客oj

九度oj

csdn題解

github**

057-刪除鍊錶中重複的結點

未收錄劍指offer–057-刪除鍊錶中重複的結點

057-刪除鍊錶中重複的結點

題目描述

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。

例如,鍊錶1->2->3->3->4->4->5

處理後為 1->2->5

我們的思路是,

我們每次都判斷當前結點的值與下乙個節點的值是否重複

#include 

using

namespace

std;

// 除錯開關

#define __tmain main

#ifdef __tmain

#define debug cout

#else

#define debug 0 && cout

#endif // __tmain

#ifdef __tmain

struct listnode

};#endif // __tmain

class solution

// 此時p指向了非重複的第乙個元素

// 我們設定last->next = p

// 但是此時p-val也可能是重複的,

// 因此我們不可以設定last = p

// 而是重新進入迴圈

last->next = p;

}else

}return first->next;

}};int __tmain( )

return

0;}

當前我們也可以對每個元素重複的次數進行技計數,如果當前結點沒有重複出現在鍊錶中,就加入新鍊錶

class solution

// 如果prenode出現了0次

if(cnt == 0)

}newnode->next = null;

return h.next;

}};

劍指Offer 鍊錶 刪除鍊錶的節點

給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點,返回刪除後的鍊錶的頭節點。解題思路 演算法流程 複雜度分析 實現 definition for singly linked list.class listnode def init self,x self.val x self.ne...

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

題目在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 思路分析 思路一 使用linkedlist儲存不重複節點,重構鍊錶 分析評價 這個方法是乙個比較直接且容易想到的方法,使用時只要注意一些情況...

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

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