這道題目也十分簡單,但是用的方法非常重要,在鍊錶操作中也有大應用。刪除鍊錶倒數第n個節點,可以使用快慢指標法,快指標先出發,到達n時慢指標出發,快指標到達終點時,慢指標就會到達倒數第n個節點。
其實鍊錶很多情況下都可以用「運動學」知識來解題,比如同樣的取排序鍊錶中位數也可以讓快指標速度是慢指標兩倍。
但是,這個題目有乙個問題,刪除鍊錶節點我們用的是p1->next=p1->next->next,如果刪除的節點正好是頭節點,沒有任何乙個鍊錶指向它,我們該怎麼辦?很簡單,在煉表頭插入乙個虛擬的頭節點(注意這個節點沒有名字!堆記憶體中的變數都沒有名字),然後再從虛擬的頭節點處開始操作,就把頭節點變成了乙個普通的節點。
python打卡練習之函式與lambda表示式
在python中,使用def可以定義乙個函式。def hello print asdf return 123 a hello print a asdf 123就可以定義乙個名為hello的函式,其中,return後面的就是該函式的返回值。python的變數型別不固定,所以python的返回值也不固定...
機器學習打卡練習之KNN演算法
knn演算法,又名k鄰近演算法,簡單的來說,就是通過測量不同特徵值之間距離的方法進行分類。演算法的原理十分簡單,舉個例子,假設我們要通過 打鬥鏡頭數 和接吻鏡頭數 這兩個特徵把電影分為愛情片和動作片,我們可以用一下步驟。為使 重複使用方便,我們將運算過程寫在函式中,再將函式放置於python模組內。...
LeetCode演算法打卡
475.供暖器 冬季已經來臨。你的任務是設計乙個有固定加熱半徑的供暖器向所有房屋供暖。現在,給出位於一條水平線上的房屋和供暖器的位置,找到可以覆蓋所有房屋的最小加熱半徑。所以,你的輸入將會是房屋和供暖器的位置。你將輸出供暖器的最小加熱半徑。說明 給出的房屋和供暖器的數目是非負數且不會超過 25000...