程式設計題 求鍊錶倒數第k個節點

2021-09-26 12:58:06 字數 414 閱讀 2193

解題思路:設定兩個指標,將第乙個指標指向鍊錶的頭結點,第二個指標保持不動,先讓第乙個指標走到第k個節點處,此時將第二個節點從鍊錶的頭結點開始走,當第乙個指標走到鍊錶的null位置時,第二個指標的位置就是倒數第k個節點的位置。

**:

# includeusing namespace std;

struct listnode

}; listnode *findnode(listnode *head,int key)

listnode *p=head;

listnode *q=head;

for(size_t i=0;inext;

} else

}while(p)

return q;

}int main()

求鍊錶倒數第k個節點

1.初解 public static node findkthtotail node head,uint k behind head while ahead.next null return behind 上面的 存在3處魯棒性問題 1 輸入的head為空指標。由於 會試圖訪問空指標指向的記憶體,程...

求煉表中倒數第K個節點

求煉表中倒數第k個節點,思路很簡單我們在遍歷時維持兩個指標,第乙個指標從鍊錶的頭指標開始遍歷,在第k 1步之前,第二個指標保持不動 在第k 1步開始,第二個指標也開始從鍊錶的頭指標開始遍歷。由於兩個指標的距離保持在k 1,當第乙個 走在前面的 指標到達鍊錶的尾結點時,第二個指標 走在後面的 指標正好...

鍊錶倒數第k個節點

兩個指標一前一後,相距k即可。include include using namespace std struct linknode typedef linknode linklist void insertlist linklist list int data else linknode rese...