15 劍指offer 反轉鍊錶

2021-10-03 10:45:09 字數 735 閱讀 5697

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。

分析://1->2->3->4->5

//1<-2<-3<-4<-5

而且這個題難在沒有頭節點

//第一種方法是:非遞迴方法

/*struct listnode

};*/

class solution

return preversehead;

}} //第二種方法是:遞迴方法 /*

struct listnode

};*/

class solution

};

遞迴的方法其實是非常巧的,它利用遞迴走到鍊錶的末端,然後再更新每乙個node的next 值 ,實現鍊錶的反轉。而newhead 的值沒有發生改變,為該鍊錶的最後乙個結點,所以,反轉後,我們可以得到新鍊錶的head。

注意關於鍊錶問題的常見注意點的思考:

1、如果輸入的頭結點是 null,或者整個鍊錶只有乙個結點的時候

2、鍊錶斷裂的考慮

還有頭插法,每次從原來的鍊錶的頭拆下乙個結點,插入新鍊錶的頭。

/*

struct listnode

};*/

class solution

return h;

}};

15 反轉鍊錶(劍指offer)

15.反轉鍊錶 輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。1.思路 這裡可以採用輔助指標的方式來進行歷求解,以下面的鍊錶為例具體分析如下 1 首先我們需要定義三個指標,分別指向當前結點 cur 前一結點 prev 後一節點 next 2 然後開始從前往後進行遍歷,在遍歷的過程中對指標進行反轉 第...

劍指offer 15 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。反轉鍊錶只需改變鏈結方向,改變方向時需要將原本指向後乙個結點的鏈結方向指向前乙個結點,因此需要記錄下三個結點。include using namespace std struct listnode class solution listnode fron...

劍指Offer 15 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。coding utf 8 class listnode def init self,x self.val x self.next none class solution 返回listnode def reverselist self,phead writ...