当前位置:网站首页 > 技术博客 > 正文

debian镜像下载

1. 单链表的建立、插入、删除、查找运算思路结构:

定义单链表节点结构体:

 struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; 

1.1 单链表的建立

 ListNode* createList(vector<int>& nums) { ListNode* head = new ListNode(0); ListNode* cur = head; for (int i = 0; i < nums.size(); i++) { ListNode* newNode = new ListNode(nums[i]); cur->next = newNode; cur = newNode; } return head->next; } 

1.2 单链表的插入

 void insertNode(ListNode* head, int val) { ListNode* newNode = new ListNode(val); newNode->next = head->next; head->next = newNode; } 

1.3 单链表的删除

 void deleteNode(ListNode* head, int val) { ListNode* cur = head; while (cur->next != NULL) { if (cur->next->val == val) { ListNode* temp = cur->next; cur->next = temp->next; delete temp; break; } cur = cur->next; } } 

1.4 单链表的查找

 ListNode* searchNode(ListNode* head, int val) { ListNode* cur = head->next; while (cur != NULL) { if (cur->val == val) { return cur; } cur = cur->next; } return NULL; } 

2. 循环单链表的建立、插入、删除、查找运算思路结构:

定义循环单链表节点结构体:

 struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; 

2.1 循环单链表的建立

 ListNode* createList(vector<int>& nums) { ListNode* head = new ListNode(0); ListNode* cur = head; for (int i = 0; i < nums.size(); i++) { ListNode* newNode = new ListNode(nums[i]); cur->next = newNode; cur = newNode; } cur->next = head; return head->next; } 

2.2 循环单链表的插入

 void insertNode(ListNode* head, int val) { ListNode* newNode = new ListNode(val); ListNode* cur = head->next; while (cur->next != head) { cur = cur->next; } newNode->next = head; cur->next = newNode; head = newNode; } 

2.3 循环单链表的删除

 void deleteNode(ListNode* head, int val) { ListNode* cur = head; while (cur->next != head) { if (cur->next->val == val) { ListNode* temp = cur->next; cur->next = temp->next; delete temp; break; } cur = cur->next; } } 

2.4 循环单链表的查找

 ListNode* searchNode(ListNode* head, int val) { ListNode* cur = head->next; while (cur != head) { if (cur->val == val) { return cur; } cur = cur->next; } return NULL; } 

版权声明


相关文章:

  • opencv copymakeborder2025-02-28 07:30:06
  • 用select语句查询2025-02-28 07:30:06
  • fork函数实现原理2025-02-28 07:30:06
  • c++用swap函数交换两个数2025-02-28 07:30:06
  • 进程的pid是固定的吗2025-02-28 07:30:06
  • java的网络编程有什么用2025-02-28 07:30:06
  • androidx86加装arm库2025-02-28 07:30:06
  • css属性选择器的优先级顺序2025-02-28 07:30:06
  • 组策略教程2025-02-28 07:30:06
  • 动态内存申请的三个函数2025-02-28 07:30:06