題目描述:給定乙個排序鍊錶,刪除所有含有重複數字的節點,只保留原始鍊錶中 沒有重複出現 的數字。
示例 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。分析 沒什麼可說的,雙遞迴,先...