(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