File tree Expand file tree Collapse file tree 1 file changed +50
-0
lines changed
src/Algorithms/0148.sort-list Expand file tree Collapse file tree 1 file changed +50
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * Definition for a singly-linked list.
3+ * class ListNode {
4+ * public $val = 0;
5+ * public $next = null;
6+ * function __construct($val) { $this->val = $val; }
7+ * }
8+ */
9+ class Solution {
10+
11+ /**
12+ * @param ListNode $head
13+ * @return ListNode
14+ */
15+ function sortList($head) {
16+ if ($head == null || $head->next == null)
17+ return $head;
18+ $slow = $head;
19+ $fast = $head;
20+ $pre = $slow;
21+ while($fast != null && $fast->next != null) {
22+ $pre = $slow;
23+ $slow = $slow->next;
24+ $fast = $fast->next->next;
25+ }
26+ $pre->next = null;
27+ $first = self::sortList($head);
28+ $second = self::sortList($slow);
29+ $res = new ListNode(1);
30+ $cur = $res;
31+ while ($first != null || $second != null) {
32+ if ($first == null) {
33+ $cur->next= $second;
34+ break;
35+ } else if ($second == null) {
36+ $cur->next = $first;
37+ break;
38+ } else if ($first->val <= $second->val) {
39+ $cur->next = $first;
40+ $first = $first->next;
41+ $cur = $cur->next;
42+ } else {
43+ $cur->next = $second;
44+ $second = $second->next;
45+ $cur = $cur->next;
46+ }
47+ }
48+ return $res->next;
49+ }
50+ }
You can’t perform that action at this time.
0 commit comments