題目描述
輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。
/*
struct listnode
};*/
class solution
};
//第一種方法是:非遞迴方法
/*
struct listnode
};*/
class solution
return ppre;
}};
//第二種方法是:遞迴方法
遞迴的方法其實是非常巧的,它利用遞迴走到鍊錶的末端,然後再更新每乙個node的next 值 ,實現鍊錶的反轉。而newhead 的值沒有發生改變,為該鍊錶的最後乙個結點,所以,反轉後,我們可以得到新鍊錶的head。
注意關於鍊錶問題的常見注意點的思考:
1、如果輸入的頭結點是 null,或者整個鍊錶只有乙個結點的時候
2、鍊錶斷裂的考慮
class solution
};
15 反轉鍊錶
題目描述 輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。一 利用棧 空間效率低 利用棧stack容器後進先出 1.將鍊錶從頭到尾遍歷放入stack中 2.棧依次彈出元素賦給下乙個結點值,指標指向下乙個結點 2.然後改變結點指標指向前乙個位置,即完成反轉。struct listnode class so...
15 反轉鍊錶
定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。修改指標指向。記憶 每一次 對應while中四步 1 原鏈的頭結點指向新結點的後置結點 2 頭結點被新結點後置指標指向 3 新結點成為頭結點 4 保持q指標在p指標的所指節點的下乙個節點上 返回listnode defrever...
15 反轉鍊錶
1 反轉鍊錶2 題目 輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素 3struct listnode48 9 思路 比如 1 2 3 4 5 6 10 反轉後 1 2 3 4 5 6 11 為了防止3和4斷開,需要以下操作 12 首先知道結點3的前乙個結點2,因為我們需要把3的next指向2 13 ...