面試演算法 鍊錶反轉

2021-09-19 11:06:51 字數 523 閱讀 6550

今天來將一下面試中經常問到的乙個問題:鍊錶反轉

【題目1】給乙個單向鍊錶,請編寫乙個函式,把鍊錶反轉,並把反轉的鍊錶返回。

假設給的節點為

class listnode

}

單向鍊錶反轉函式如下

public listnode reverse1(listnode head)

return prev;

}

【題目2】給乙個雙向鍊錶,請編寫乙個函式,把鍊錶反轉,並把反轉的鍊錶返回。

假設給的節點為

class listnode

}

雙向鍊錶反轉函式如下

public listnode reverse2(listnode head)

return cur;

}

面試演算法題 1 鍊錶反轉

分享一道面試碰到的演算法題。鍊錶反轉,不借助任何掐資料結構或容器。意思就是把鍊錶尾當成煉表頭,並且每個節點的指標反向。先看下圖 黑色部分是原來鍊錶 紅色部分是翻轉後的鍊錶。思路分析 1 拿到head煉表頭,然後遞迴處理。2 當處理到head節點是,需要把head的next指標置空。3 如果是最後乙個...

面試演算法篇 鍊錶

1.如何在一次遞迴後找到單鏈表的中間元素 思路 使用兩個指標,乙個一次走一步,乙個一次走兩步,一次走兩步的走完時,另乙個剛好走到中間.public listnode findmid listnode head slow slow.next quick quick.next.next return s...

面試演算法之鍊錶操作集錦

鍊錶操作在面試過程中也是很重要的一部分,因為它和二叉樹一樣都涉及到大量指標的操作,而且鍊錶本身很靈活,很考查程式設計功底,所以是很值得考的地方。下面是本文所要用到鍊錶節點的定義 template struct listnode 鍊錶的建立可以採用下面的 採用尾插法進行鍊錶的建立,返回的鍊錶沒有頭節點...