剛開始,我想到的是一種笨方法,先遍歷單鏈表,計算出單鏈表的長度len,然後再從頭遍歷單鏈表到第len-k個節點,那麼
這個節點既是單鏈表的倒數第k個節點。
不過這種演算法時間複雜度挺高的,還有一種更簡單的方法,就是設定兩個指標,分別指向單鏈表的頭節點,然後讓其中乙個指標,先走k步,
之後,再讓兩個指標同時走,直到第乙個指標走到單鏈表尾節點結束。
那麼,第二個指標所指向的節點,就是倒數第k個節點。
**如下:
在執行sublime text2時發現出現 error2的錯誤。
解決辦法如下:開啟f:\sublimetext2\data\packages\c++\c++.sublime-build
", "-o", "$/$"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "$",
"selector": "source.c, source.c++",
"variants":
[ ' -o '$/$' && '$/$'"]
"cmd": [ "$/$.exe"]
} ]}
看到有注釋的那一行,是原先配置的,現在把它注釋掉,新增下面的一行:
"cmd": [ "$/$.exe"]
重新執行,就可以了。
單鏈表查詢倒數第K個節點
分析 p q兩個指標指向表頭結點,p向前移動k個位置後q向前移動,當p結點移到尾結點時,q的next指標域所指結點即為所求結點 若不存在k個結點,則當p指向尾結點時,k不為0。include include typedef struct node node,linklist linklist cre...
查詢單鏈表中倒數第k個節點
那麼,這次來說乙個具體的問題吧,乙個單向鍊錶中有n個結點,現在要求列印鍊錶中的倒數第k個結點,應該怎樣實現?普通人反映出的第乙個思路應該是先遍歷一遍整個鍊錶知道鍊錶的長度len,然後要輸出倒數第k個就是正數的第len k 1個結點,那麼只需要遍歷鍊錶到這個結點然後列印就好了。顯然這個方法需要遍歷2次...
查詢單鏈表中的倒數第k個節點
解題思路 1 編寫乙個方法,接收head節點,同時接收乙個index 2 index表示是倒數第index個節點 3 先把鍊錶從頭到尾遍歷,得到鍊錶的總的長度getlength 4 得到size後,我們從鍊錶的第乙個開始遍歷 size index 個,就可以得到 5 如果找到了,則返回該節點,否則返...