當前位置:
首頁 >
链表总结
發布時間:2025/3/15
35
豆豆
鏈表是一種動態數據結構。每次添加一個節點時分配一次內存。由于沒有閑置的內存,鏈表的空間效率比數組要高。
常用的鏈表有:單向鏈表,雙向鏈表,循環鏈表
下面是一個單項鏈表添加節點和刪除節點的代碼
補一下new和delete的知識。
new和delete運算符分別用于動態分配內存和動態回收。用new動態分配的內存中存放隨機值,在使用前應初始化。
在程序執行過程中,如果希望根據輸入或計算的一個值來說明一個數組的大小,用傳統的數組說明語句是無法實現的,例如:
編譯器指出數組a說明無效,因為n不是常量。
但用new運算符來申請分配內存空間是可以的,例如:
相關面試題
單向鏈表反轉
LinkList* reverse(LinkList* head){LinkList* p, q, pr;p=head->next;pr=p->next;q = NULL;while(p!= NULL){p->next = q;q=p;p = pr;pr = p->next;}head -> next = q;return head; }判斷鏈表中環的入口點
/* struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {} }; */ class Solution { public:ListNode* EntryNodeOfLoop(ListNode* pHead){if(pHead == NULL || pHead->next == NULL){return null;}ListNode* fast = pHead;ListNode* slow = pHead;while(fast != slow && fast->next != NULL && fast != NULL){slow = slow->next;fast = fast->next->next;}if(fast == slow){fast = pHead;while(fast != slow){fast = fast->next;slow = slow->next;}if(fast == slow){return fast;}}else{return null;}} };查找鏈表的倒數第k個數
判斷鏈表是否有環
總結
- 上一篇: C++十进制转二进制
- 下一篇: oracle中提取日期时间的特定部分,E