單鏈表中的排序和逆置問題

2021-08-04 18:29:56 字數 900 閱讀 4894

單鏈表的排序問題:

class node   //結點類

node(int n,node *p = null):value(n),next(p){}

intvalue;

node *next;

};

class list

;

方法一:

void

list

::sort() //排序}}

}

方法二:

void

list

::sort1()

}if(newhead ==

null) //串接

else

if(min

== m_phead) //最小的結點就是頭結點

m_phead = m_phead->next;

else

//否則就將最小節點的前乙個節點與最小節點的下乙個節點相連

minf->next =

min->next;

}if(newhead !=

null)

}

單鏈表的逆置問題:

void

list

::resreve() //逆置

p->next = pf; //改變最後乙個結點的next指標

m_phead = p; //最後將m_phead的指向改到最後乙個結點的位置

}

對於單鏈表的排序和逆置問題讓我印象深刻。分享下方法,看的時候如果有不明白的可以畫圖,有助於理解。在學習的時候也很頭疼,不過自己動手畫一畫會容易許多。

單鏈表逆置

單鏈表逆置 include include define item num 10 typedef struct tagnode node node linklist create void linklist destroy node head void linklist print node hea...

單鏈表逆置

name 單鏈表逆置 author 巧若拙 date 22 11 14 16 13 description 分別用遞迴和非遞迴兩種方式實現單鏈表 不含頭結點 的逆置 include include include typedef char elemtype typedef int status 函式...

單鏈表逆置

最近在leetcode oj上刷題,將一些演算法題的解法記錄下來,也期待一些新的更好的方法。題目是這樣滴 206.reverse linked list reverse a singly linked list.hint a linked list can be reversed either it...