劍指offer

(1)在O(1)時間內刪除鏈表結構【劍指offer-13】 數組

題目:給定一個單向鏈表的頭指針和一個結點指針,定義一個函數在O(1)時間內刪除該節點。 函數

struct ListNode{
int value;
ListNode* next;
}
void DeleteList(ListNode** pListHead,ListNode* pToBeDelete)
{
if(!pListHead||!pToBeDelete)return;//判空
//刪除結點爲非尾節點
if(pToBeDelete->next!=Null)
{
ListNode* p_Next = pToBeDelete->next;
pToBeDelete->value = p_Next->value;
pToBeDelete->next = p_Next->next;
delete p_Next;
p_Next = Null;
}
//鏈表只有一個節點,刪除頭節點,也是尾節點
else if(* pListHead==pToBeDelete)
{
delete pToBeDelete;//垃圾回收
pToBeDelete = Null;
* pListHead =Null;
}
//鏈表中有多個節點,刪除尾節點
else{
ListNode* pNode = *pListHead;
while(pNode->next!=pToBeDelete)
{
pNode = pNode->next;
}
pNode->next=Null;
delete pToBeDelete;
pToBeDelete = Null;
}
}
(2)調整數組順序使奇數位於偶數前面【劍指offer-14】

題目:輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得全部 spa


(3)鏈表中倒數第k個節點【劍指offer-15-代碼魯棒性】 指針

(4)反轉鏈表【劍指offer-16 code

每處理一個節點須要三個指針:分別指向當前遍歷結點、它的前一個節點、它的後一個節點 排序

(5)合併兩個排序的鏈表【劍指offer-17 class

(6)樹的子結構【劍指offer-18 List

相關文章
相關標籤/搜索