/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* sortList(ListNode* head) {
if(head == nullptr){
return head;
}
if(head->next == nullptr){
return head;
}
//Quicksort
int pivot = head->val;
//Numbers less than pivot
ListNode* less = new ListNode();
//Numbers more than pivot
ListNode* more = new ListNode();
//Resulting merged linked list
ListNode* result = new ListNode();
//Pointers
ListNode* headPtr = head;
ListNode* lessPtr = less;
ListNode* morePtr = more;
ListNode* resultPtr = result;
while(headPtr != nullptr){
if(headPtr->val > pivot){
morePtr->next = new ListNode(headPtr->val);
morePtr = morePtr->next;
}else{
lessPtr->next = new ListNode(headPtr->val);
lessPtr = lessPtr->next;
}
headPtr = headPtr->next;
}
ListNode* sortedLess = sortList(less->next);
ListNode* sortedMore = sortList(more->next);
resultPtr ->next = sortedLess;
resultPtr = resultPtr->next;
resultPtr ->next = new ListNode(pivot);
resultPtr = resultPtr->next;
resultPtr ->next = sortedMore;
resultPtr = resultPtr->next;
return result;
}
};
< /code>
Ошибка выходит: AddchSanitizer: Stack-overflow на адрес 0x7fff06c79fe8 (PC 0x55a5c16eedf0 bp 0x000000000001 sp 0x7fff06c79ff0 t0) < /p>
Идея: проблема на LeetCode, что для создания Artgor. O (nlogn) время для сортировки любого списка, в основном я использую QuickSort и адаптируя его к связанным спискам. Однако ошибка произошла
, пожалуйста, не могли бы вы объяснить, что я делаю не так, что можно улучшить, как исправить ошибку? (Я только начал изучать алгоритмы, так что не будьте строгим))
Подробнее здесь: https://stackoverflow.com/questions/796 ... inked-list
Список сортировки связанного списка ⇐ C++
Программы на C++. Форум разработчиков
1749099679
Anonymous
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* sortList(ListNode* head) {
if(head == nullptr){
return head;
}
if(head->next == nullptr){
return head;
}
//Quicksort
int pivot = head->val;
//Numbers less than pivot
ListNode* less = new ListNode();
//Numbers more than pivot
ListNode* more = new ListNode();
//Resulting merged linked list
ListNode* result = new ListNode();
//Pointers
ListNode* headPtr = head;
ListNode* lessPtr = less;
ListNode* morePtr = more;
ListNode* resultPtr = result;
while(headPtr != nullptr){
if(headPtr->val > pivot){
morePtr->next = new ListNode(headPtr->val);
morePtr = morePtr->next;
}else{
lessPtr->next = new ListNode(headPtr->val);
lessPtr = lessPtr->next;
}
headPtr = headPtr->next;
}
ListNode* sortedLess = sortList(less->next);
ListNode* sortedMore = sortList(more->next);
resultPtr ->next = sortedLess;
resultPtr = resultPtr->next;
resultPtr ->next = new ListNode(pivot);
resultPtr = resultPtr->next;
resultPtr ->next = sortedMore;
resultPtr = resultPtr->next;
return result;
}
};
< /code>
Ошибка выходит: AddchSanitizer: Stack-overflow на адрес 0x7fff06c79fe8 (PC 0x55a5c16eedf0 bp 0x000000000001 sp 0x7fff06c79ff0 t0) < /p>
Идея: проблема на LeetCode, что для создания Artgor. O (nlogn) время для сортировки любого списка, в основном я использую QuickSort и адаптируя его к связанным спискам. Однако ошибка произошла
, пожалуйста, не могли бы вы объяснить, что я делаю не так, что можно улучшить, как исправить ошибку? (Я только начал изучать алгоритмы, так что не будьте строгим))
Подробнее здесь: [url]https://stackoverflow.com/questions/79653814/sort-list-linked-list[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия