以給定值x為基準將鍊錶分割成兩部分(BAT面試題)

2021-10-05 00:10:44 字數 802 閱讀 4963

一,題目描述

編寫**,以給定值x為基準將鍊錶分割成兩部分,所有小於x的結點排在大於或等於x的結點之前

給定乙個鍊錶的頭指標 listnode* phead,請返回重新排列後的鍊錶的頭指標。注意:分割以後保持原來的資料順序不變。

二,解決思路

建立兩個新的帶傀儡節點的新鍊錶,乙個存放值大於x的節點,乙個存放值小於x的節點,最後將小鍊錶與大鍊錶鏈結起來即可

三,**實現

public listnode partition

(listnode phead,

int x)

if(phead.next == null)

listnode bighead =

newlistnode(-

1);//建立兩個新的帶傀儡節點的新鍊錶,

// 乙個存放大於x的元素的鍊錶

listnode bigtail = bighead;

// 乙個存放小於x的元素的鍊錶

listnode smallhead =

newlistnode(-

1); listnode smalltail = smallhead;

for(listnode cur = phead; cur != null; cur = cur.next)

else

}// 將兩個鍊錶收尾相接到一起

smalltail.next = bighead.next;

return smallhead.next;

}

C語言 計算給定多項式在給定點x的值

對比所用的兩種方法 doublef1 double a,int n,double x return result doublef2 double a,int n,double x return result 從函式執行所需時間入手,可借助clock函式,其在標頭檔案中 clock t clock v...

找出陣列中和為給定值的方法

這個題某次面試中面試官問到了,在leetcode上也有 題目描述 給定乙個整數陣列nums和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 ...

專案一 刪除結點值為X的結點

問題及 檔名稱 words.cpp 作 者 尚 月 完成日期 2015年02月08日 版 本 號 v1.0 問題描述 編寫函式,刪除鍊錶中有值為x的結點。程式輸入 若干正數 以0或乙個負數結束 建立鍊錶。程式輸出 輸出刪除後的鍊錶 include using namespace std struct...