每日程式設計(十七) leetcode刷題 又是鍊錶

2021-09-11 01:41:46 字數 1084 閱讀 7328

題目描述:給定乙個排序鍊錶,刪除所有含有重複數字的節點,只保留原始鍊錶中 沒有重複出現 的數字。

示例 1:

輸入: 1->2->3->3->4->4->5

輸出: 1->2->5

示例 2:

輸入: 1->1->1->2->3

輸出: 2->3

分析:題目的難點再與需要把重複的元素全部刪除,並且返回頭結點,所以需要乙個節點指向頭結點,隨時改變,看**感受一下;

**:

/**

* definition for singly-linked list.

* type listnode struct

*/func deleteduplicates(head *listnode) *listnode

dummyhead.next=head

pre :=dummyhead

cur :=pre.next

for cur!=nil

if pre.next==curelse

cur=cur.next

}return dummyhead.next

}

題目描述:反轉乙個單鏈表。

示例:輸入: 1->2->3->4->5->null

輸出: 5->4->3->2->1->null

分析:我大概想了三個方法,1,直接反轉鍊錶 2,新起乙個頭結點,遍歷鍊錶(更加費事,不建議)3,遍歷鍊錶把值儲存在切片中,在遍歷鍊錶賦值(原理簡單,**多,浪費空間),所以我用第乙個,就是要注意,將下乙個指標儲存起來

**:

/**

* definition for singly-linked list.

* type listnode struct

*/func reverselist(head *listnode) *listnode

pre:=head //儲存前節點

cur:=head.next //儲存當前節點

pre.next=nil

for cur!=nil

return pre

}

每日程式設計(五) leetcode刷題

題目 最後乙個單詞的長度 描述 給定乙個僅包含大小寫字母和空格 的字串,返回其最後乙個單詞的長度。如果不存在最後乙個單詞,請返回 0 說明 乙個單詞是指由字母組成,但不包含任何空格的字串。示例 輸入 hello world 輸出 5分析 比較簡單了,很明顯字串的分割,去最後乙個字串,計算長度即可,但...

每日程式設計(十) leetcode刷題

題目 將有序陣列轉換為二叉搜尋樹 題目描述 將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示...

每日程式設計(十一) leetcode刷題

題目 平衡二叉樹 題目描述 給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回true。分析 沒什麼可說的,雙遞迴,先...