鏈表問題在C和C++的面試中最常見,因為它們是弄清楚應聘者是否理解指針的一種簡單的辦法。不過這個點太初級、太基礎了,所以不管用哪種語言,你都應該知道該如何從零做起應用它們。而且由于大部分鏈表問題不過是與人所周知的遍歷還有刪除和插入相關的問題的變體,所以鏈表問題準備起來很容易,你沒有理由拿不到這部分分數。
許多鏈表問題中都會用到一個小技巧,那就是慢速/快速指針技術。它的簡單版含義如下:使用兩個指針迭代生成一個列表,其中一個指針在另一個指針的前面。快速模式下的指針可能會是一個位于前面的固定數值(它有助于確定列表有無循環,或者找到列表中的第k個元素),或者也可能會跳過慢速指針經過的多個結點(打個比方,如果快速指針的速度是慢速指針的兩倍,那么當它到達列表末尾時,慢速指針將會位于列表的中間)。
請注意,當面試官談到鏈表時,他們常常指的是單鏈表,但你無論如何都應該問清楚。