我有一個演算法應該接受輸入 k 并回傳相應的第 k 個最后一個元素,所以如果 k=1,它應該回傳最后一個元素,如果 k=2 如果應該回傳倒數第二個元素......等等
我不明白某些代碼行在做什么或為什么它們需要在那里,例如:
n = n - k 1
這是整個代碼,任何幫助理解每一行正在做什么都會很棒:
function lastk(List L, Int k) → List
tmp = L
n = 0
while tmp ?= NIL do
n=n 1
tmp = tmp.next
if n<k then
return NIL
else
tmp = L
n = n ? k 1
i=1
while i < n do
tmp = tmp.next
i=i 1
return tmp
uj5u.com熱心網友回復:
如果此長度小于,則第一個while回圈計算串列L回傳的長度。NILk
接下來的兩行else tmp = L是多余的。
n ? k 1k是從末尾開始的第 - 個元素的索引。
第二個while回圈遍歷串列到這個元素。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/485811.html
