《leetCode php》分割鍊錶

2021-09-28 11:19:30 字數 729 閱讀 2077

給出乙個鍊錶和乙個值x,以x為參照將鍊錶劃分成兩部分,使所有小於x的節點都位於大於或等於x的節點之前。

兩個部分之內的節點之間要保持的原始相對順序。

例如: 

給出1->4->3->2->5->2和x = 3,

返回1->2->2->4->3->5

<?php

class node

}function partition($head, $x) else

}$node->next = $largenode->next;

return $smallnode->next;

}$node1 = new node(1);

$node2 = new node(4);

$node3 = new node(3);

$node4 = new node(2);

$node5 = new node(5);

$node6 = new node(2);

$node1->next = $node2;

$node2->next = $node3;

$node3->next = $node4;

$node4->next = $node5;

$node5->next = $node6;

$retnode = partition($node1, 3);

while ($retnode != null)

《leetCode php》鍊錶內部部分反轉

將乙個鍊錶m位置到n位置之間的區間反轉,要求使用原地演算法,並且在一次掃瞄之內完成反轉。例如 給出的鍊錶為1 2 3 4 5 null,m 2 n 4,返回1 4 3 2 5 null.注意 給出的m,n滿足以下條件 1 m n 鍊錶長度 class node function reversebet...

鍊錶分割問題

題目 編寫 以給定的x為基準值將鍊錶分割成兩部分,所有小於x的結點排在大於或等於x的結點之前。解法一 交換結點法,回想學習快速排序的時候,也是以基準值將一組數劃分成兩部分,小於基準值的排在前面,大於基準值的排在後半部分。因此解決這個問題也可以使用兩個指標。如果煉表頭結點開始遍歷,第乙個需要移動的結點...

11 鍊錶分割

編寫 以給定值x為基準將鍊錶分割成兩部分,所有小於x的結點排在大於或等於x的結點之前 給定乙個鍊錶的頭指標 listnode phead,請返回重新排列後的鍊錶的頭指標。注意 分割以後保持原來的資料順序不變。public listnode partition listnode phead,int x...