輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。

2021-10-21 20:48:43 字數 682 閱讀 6286

輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。

輸入 1,

返回

思路很簡單,其實就是求倒數k個節點,那麼反過來想就是求正數鍊錶的長度減去k再加上一這個位置的節點就好了。

思路:於是可以這樣做,使用兩個節點,他們剛開始都指向head頭節點,然後先讓某乙個節點開始往前面跑,當這個節點跑到k-1的位置的時候,那麼再讓另外乙個節點開始跑,當前面的那個節點已經走到鍊錶的最末尾的時候,那麼後面的這個節點所指向的位置就剛好是倒數第k個節點。

需要注意的是,需要借助乙個變數把鍊錶的長度記錄下來,以便於後續的判斷(當k大於鍊錶長度的情況,就應該直接返回null,因為並沒有倒數第k這個節點。)

答案給出如下

/*

public class listnode

}*/public

class

solution

k--;}

//此時剛好乙個鍊錶的長度已經知道了,因為listnode1已經把鍊錶都遍歷了一遍,那麼做乙個判斷即可。

if(countreturn listnode2;

}}

輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。

1,問題 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。2,想法都在 裡標註了 struct listnode class solution int count 0 listnode temp plisthead while plisthead int m count k 倒數第k個,是順數第count...

輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點

思路 兩個指標,先讓第乙個指標和第二個指標都指向頭結點,然後再讓第乙個指正走 k 1 步,到達第k個節點。然後兩個指標同時往後移動,當第乙個結點到達末尾的時候,第二個結點所在位置就是倒數第k個節點了。public class solution public listnode findkthtotai...

輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。

題目描述 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。解題思路 1.先遍歷鍊錶,獲得鍊錶中的總結點數。2.倒數第k個元素,即為順數第 size k 1 個元素。3.遍歷鍊錶,獲得第 size k 1的元素。public class listnode public class solution 統計鍊錶...