当前位置: 首页 > news >正文

宿松网站建设推荐秒搜科技欧美seo查询

宿松网站建设推荐秒搜科技,欧美seo查询,免费的网站空间申请,扬州房产网长沙出差ing,今天的核心是链表,一个比较基础且重要的数据结构。对C的指针的使用,对象的创建,都比较考察,且重要。 203.移除链表元素 dummyNode虚拟头节点很重要,另外就是一个前后节点记录的问题。但是Leet…

长沙出差ing,今天的核心是链表,一个比较基础且重要的数据结构。对C++的指针的使用,对象的创建,都比较考察,且重要。

203.移除链表元素

dummyNode虚拟头节点很重要,另外就是一个前后节点记录的问题。但是LeetCode不能free,日常还是要养成用完指针free的好习惯。

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* removeElements(ListNode* head, int val) {if(head == NULL) return head;ListNode *var = head;ListNode *dummy = new ListNode(-1,head);ListNode *pre = dummy;dummy->next = head;while(var->next != NULL){if(var->val == val){pre->next = var->next;// free(var);var = pre->next;}else{pre = var;var = pre->next;}}if(var->val == val){pre->next = NULL;// free(var);}return dummy->next;}
};

707.设计链表

经典的设计链表,注意C++指针和对象的使用,在判断时还会漏掉最后一个节点或第一个节点的问题。这里就贴一下我的丑代码:

class MyLinkedList {
public:struct ListNode{int val;ListNode *next;ListNode(int val):val(val),next(nullptr){}};ListNode *dummyNode;MyLinkedList() {dummyNode = new ListNode(-1);}int get(int index) {int id = 0;ListNode *temp = dummyNode->next;if(!temp) return -1;while(temp->next != nullptr){if(id == index) return temp->val;else {id ++; temp = temp->next;}}if(id == index) return temp->val;return -1;}void addAtHead(int val) {ListNode *newNode = new ListNode(val);ListNode *tail = dummyNode->next;dummyNode->next = newNode;newNode->next = tail;}void addAtTail(int val) {ListNode *newNode = new ListNode(val);ListNode *temp;if(dummyNode->next == nullptr) temp = dummyNode;elsetemp = dummyNode->next;while(temp && temp->next != nullptr){temp = temp->next;}temp->next = newNode;}void addAtIndex(int index, int val) {int id = 0;ListNode *newNode = new ListNode(val);ListNode *temp = dummyNode->next;if(index == 0) {addAtHead(val);return;}if(!temp) return;while(temp->next != nullptr){if(id+1 == index) {ListNode *tail = temp->next;temp->next = newNode;newNode->next = tail;return;}else {id ++; temp = temp->next;}}if(id+1 == index) {ListNode *tail = temp->next;temp->next = newNode;newNode->next = tail;return;}return;}void deleteAtIndex(int index) {int id = 0;ListNode *temp = dummyNode->next;if(index == 0){if(temp){ListNode *tail = temp->next;// free(temp->next);dummyNode->next = tail;}return;}while(temp->next != nullptr){if(id+1 == index) {ListNode *tail = temp->next->next;// free(temp->next);temp->next = tail;return;}else {id ++; temp = temp->next;}}return;}
};/*** Your MyLinkedList object will be instantiated and called as such:* MyLinkedList* obj = new MyLinkedList();* int param_1 = obj->get(index);* obj->addAtHead(val);* obj->addAtTail(val);* obj->addAtIndex(index,val);* obj->deleteAtIndex(index);*/

206.反转链表

经典的链表反转,注意前后指针的记录即可。

class Solution {
public:ListNode* reverseList(ListNode* head) {ListNode* temp; // 保存cur的下一个节点ListNode* cur = head;ListNode* pre = NULL;while(cur) {temp = cur->next;  // 保存一下 cur的下一个节点,因为接下来要改变cur->nextcur->next = pre; // 翻转操作// 更新pre 和 cur指针pre = cur;cur = temp;}return pre;}
};
http://www.ds6.com.cn/news/49705.html

相关文章:

  • 郑州做网站推广多少钱市场监督管理局职责范围
  • 网站建设怎么把代码放入网站上惠州seo按天计费
  • wordpress的时间搜索引擎优化服务公司哪家好
  • 北京经济适用房做网络优化的公司排名
  • 电商网站会员体制怎么做百度移动端优化
  • 互联网建站肇庆网站制作软件
  • 国字类型网站有哪些内容安卓嗅探app视频真实地址
  • 网站的风格与布局的设计方案网络维护培训班
  • 襄阳法院网站建设链交换反应
  • 装饰公司加盟点击精灵seo
  • 网站维护广州建网站青岛运营网络推广业务
  • 生物医药网站建设宁波优化网页基本流程
  • 微网站注意事项seo快速优化方法
  • 怎样做网站推广网站自己推广
  • wordpress再安装seo优化顾问服务阿亮
  • 怎样做服装网站活动营销的方式有哪些
  • 医疗医院网站建设百度快照投诉中心官网
  • 吉林省建设信息网站关键词优化营销
  • 邮箱地址注册入口泉州百度推广排名优化
  • 中企动力做的网站怎么登陆怎么查网站是不是正规
  • dede网站url采集自己想做个网站怎么做
  • 网站独立页面seo 页面
  • 个人网站 做啥好百度手机关键词排名工具
  • 免费怎样搭建网站sem与seo的区别
  • 温州营销网站制作费用首页百度
  • 霞浦县网站seo优化排名百度信息流账户搭建
  • 谷德设计网站做引流推广的平台
  • web网站开发技术爱站工具包怎么使用
  • 负责公司网站产品的开发及整理百度关键字排名软件
  • 建设网站企业银行适合小学生的新闻事件