//找鍊錶的中間結點
/*已知單鏈表l,編寫演算法找出該鍊錶的中間位置的結點。
思考:1、一種想法就是從頭遍歷到尾部,記錄長度。隨後再次遍歷一次,直到長度的二分之一即找到。時間複雜度為o(3n/2)
2、另一種想法:設定快慢指標,快指標一次走兩步,慢指標一次走一步,當快指標走到null的時候,慢指標的位置就是鍊錶的中間位置
本程式使用第二種想法
*/#include
#include
using
namespace
std;
int l_length = 0
;template
struct
node
node(
const t &data)
};template
void pushinlist(node* &l, const t &t)
template
void printlist(const node*l)
template
node
* getmiddle(const node*l)
returnp;}
int main(void
) /*
樣例輸入:
a b c d e f g -1
a b c d e f -1
樣例輸出:dc
*/
鍊錶的中間結點
題目 給定乙個帶有頭結點 head 的非空單鏈表,返回鍊錶的中間結點。如果有兩個中間結點,則返回第二個中間結點。示例 1 輸入 1,2,3,4,5 輸出 此列表中的結點 3 序列化形式 3,4,5 返回的結點值為 3 測評系統對該結點序列化表述是 3,4,5 注意,我們返回了乙個 listnode ...
鍊錶的中間結點
給定乙個帶有頭結點 head 的非空單鏈表,返回鍊錶的中間結點。如果有兩個中間結點,則返回第二個中間結點。示例 1 輸入 1,2,3,4,5 輸出 此列表中的結點 3 序列化形式 3,4,5 返回的結點值為 3 測評系統對該結點序列化表述是 3,4,5 注意,我們返回了乙個 listnode 型別的...
鍊錶的中間結點
力扣題目鏈結 給定乙個帶有頭結點 head 的非空單鏈表,返回鍊錶的中間結點。如果有兩個中間結點,則返回第二個中間結點。例項1 輸入 1,2,3,4,5 輸出 此列表中的結點 3 序列化形式 3,4,5 返回的結點值為 3 例項2 輸入 1,2,3,4,5,6 輸出 此列表中的結點 4 序列化形式 ...