1。
/ * * *単独リンクリストのための定義。 *構造体ListNode { * INTヴァル。 * ListNode *次の; * ListNode(INT X):ヴァル(x)は、次の(NULL){} *}。 * / クラスソリューション{ パブリック: ListNode *パーティション(ListNode *ヘッド、int型のx){ 場合(!ヘッド||頭部>次の)リターンヘッド。 ListNodeのLN( - 1); ln.next = ヘッド。 ListNode *プリ=&LN、* CUR =頭部、*ノード= 事前。 一方、(CUR){ 場合(cur->ヴァル> =X){ 一方(CUR && cur->値> = {X) ノード = CUR。 CUR = cur-> 次。 } もし(!CUR)ブレーク。 ノード - >次= cur-> 次。 CUR - >次=プレ> 次。 前 - >次= CUR。 事前 = CUR。 CUR =ノード- > 次。 } 他{ 場合(プレ>次!= CUR){ ノード- >次= cur-> 次。 CUR - >次=プレ> 次。 前 - >次= CUR。 事前 = CUR。 CUR =ノード- > 次。 } 他{ 事前 = CUR。 CUR = cur-> 次。 } } } 戻りln.next。 } }。
2。
/ * * *単独リンクリストのための定義。 *構造体ListNode { * INTヴァル。 * ListNode *次の; * ListNode(INT X):ヴァル(x)は、次の(NULL){} *}。 * / クラスソリューション{ パブリック: ListNode *パーティション(ListNode *ヘッド、INT X){ ListNode以下(0)、以上(0 )。 ListNode * CUR =頭部、* lessp =&少なく、* morep =&以上; 一方、(CUR){ 場合(cur->ヴァル< X){ lessp >次= - ; CUR lessp = lessp-> 次。 } 他{ morep - >次= CUR。 morep = morep-> 次。 } CUR = cur-> 次。 } morep - >次= nullptr。 lessp - >次= more.next。 リターンless.next。 } }。