題目描述:
給定乙個無序單鏈表的頭結點head,刪除其中值重複出現的節點。
例如:1->2->3->3->4->4->2->1->1->null,刪除值重複出現的節點後為:
1->2->3->4->null。
要求:額外空間複雜度為o(1)
思路:類似於選擇排序的過程,時間複雜度為o(n * n),額外空間複雜度為o(1)
首先是頭結點,值為1,向後遍歷鍊錶找到和1相同的節點並刪除,
此時鍊錶變為:1->2->3->3->4->4->2->null,然後是下乙個節點,也就是值為2的節點,找到相同並刪除,
此時鍊錶變為1->2->3->3->4->4->null,重複此過程,直至相同節點全部刪除
public
class
code_020_removeduplicateelements
}public
static node removeduplicate
(node head)
else
cur = cur.next;
} equal = equal.next;
}return head;
}}
2019 04 09打卡(資料結構單鏈表2)
單鏈表的刪除和尾插法建立部分 來自教材 1 int remove linklist first,int i,datatype x 11 刪除表中第i個元素,通過引用型引數x返回該元素的值 1 尾插法建立單鏈表 2 include linklist.h 3 void createlistrear li...
190505打卡 兩個單鏈表生成相加鍊錶
題目描述 假設鍊錶中每乙個節點的值都在0 9之間,那麼鍊錶整體就可以代表乙個整數。例如 9 3 7,既可以代表整數937。給定兩個這種鍊錶的頭結點head1和head2,請生成代表兩個整數相加值的結果鍊錶。例如 鍊錶1為9 3 7,鍊錶2為6 3,最後生成新的結果鍊錶為1 0 0 0。思路 將兩個鍊...
刪除元素值相同的有序 無序單鏈表
注 1 設定指標p最初指向第1個結點,當p的指標域不為空,既p不是最後乙個結點時進入迴圈體內進行判斷。2 在迴圈過程中判斷p所指的結點的後繼q是否與p的資料域相同,如果相同則刪除q 不同則說明了鍊錶中沒有與p的資料域相同的結點,則p後移 include stdio.h include stdlib....