怎麼對c 單鏈表冒泡演算法反轉?

時間 2021-10-24 18:38:07

1樓:十四不是四十

//氣泡排序,這裡我用的是交換鍊錶值的方式實現的,結果是從小到大排序

* Definition for singly-linked list.

* struct ListNode

//鍊錶氣泡排序

class Solution {

public:

ListNode *sortList(ListNode *head) {

if(head == nullptr || head->next == nullptr) return head;

ListNode* p1 = head;

ListNode* p2 = nullptr;

while(p2 != head){

while(p1 != nullptr&& p1->next != nullptr&& p1->next != p2){

ListNode* pNext = p1->next;

if(p1->val > pNext->val){

int temp = p1->val;

p1->val = pNext->val;

pNext->val = temp;

p1 = p1->next;

p2 = p1;

p1 = head;

return head;

2樓:RootUbuntu

時間複雜度為n的解法是,遍歷鍊錶同時將指標從A->B調整為B->A(記得用乙個中間量儲存B,從而取得B下乙個節點),更好的複雜度,暫時沒想出來。

C 語言中,如何刪除單鏈表中的節點?

zet struct Node void removeValue Node list,int val 測試 int main int argc,char argvNode myNode1 Node node1 myNode1 node1 val 1 Node myNode2 Node node2 m...

怎麼用C 實現氣泡排序演算法?

禽獸狼 不用謝 include using namespace std intmain int argc char argv int p Array p asm for auto n Array cout cout return0 已登出 不用謝 不當人大隊3 n include using nam...

外貿單多收的運費一般怎麼算提成?

外貿小K 外貿單子多收的運費可以這麼處理 分兩種情況 一種是公司願意把運費按毛利的抽點給業務算抽成。這種就沒啥好說的,我覺得很合理。相信大家應該也都能接受吧?另外一種就是公司收入囊中,對你沒有半點好處。這個我們可以靈活一點,核對運費賬單的時候,看多收客戶多少錢,我們自己要記錄下來。萬一下次估錯運費導...