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

建设网站设计制作廊坊网站推广公司

建设网站设计制作,廊坊网站推广公司,Wordpress淘客自动采集,宜春住房和城乡建设部网站如何删除? 找到倒数第n个节点的 前置(倒数n1)节点 和 后置(倒数n-1)节点让目标节点的前置节点 指向 目标节点的后置节点但是头节点没有前置节点怎么办?加一个空节点指向head就可以了 暴力遍历 为什么使用…

如何删除?

  1. 找到倒数第n个节点的 前置(倒数n+1)节点后置(倒数n-1)节点
  2. 让目标节点的前置节点 指向 目标节点的后置节点
  3. 但是头节点没有前置节点怎么办?加一个空节点指向head就可以了

暴力遍历

  1. 为什么使用hair?因为被删除的可能是head节点呀
  2. 获取链表长度length
  3. 找到目标节点的前置节点,即第length-n个节点
  4. 前置节点指向后置节点
/*** 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* removeNthFromEnd(ListNode* head, int n) {ListNode* hair = new ListNode(-1,head);ListNode* tmp = head;// 获取链表长度int length = 0;while(tmp){length++;tmp = tmp->next;}// 找到第length-n个节点tmp = hair;for(int i=0;i<length-n;i++){tmp = tmp->next;}tmp->next = tmp->next->next;return hair->next;}
};

  1. 入栈,从空节点开始(不然删除头节点,出栈时找不到头节点的前置节点)
  2. 出栈n+1个节点,最后一个出栈的就是目标节点的前置节点
/*** 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* removeNthFromEnd(ListNode* head, int n) {ListNode* hair = new ListNode(-1,head);ListNode* tmp = hair;stack<ListNode*> mystack;while(tmp)// 入栈{mystack.push(tmp);tmp = tmp->next;}for(int i=0;i<=n;i++) // 出栈{tmp = mystack.top();mystack.pop();}tmp->next = tmp->next->next;return hair->next;}
};

双指针

  1. 建立一个空节点,指向头节点,可会快速返回头节点
  2. 指针1赋值为头节点,指针2赋值为hair节点 (为了能够停在前置节点)
  3. 指针1先走n步
  4. 指针1和指针2同时移动,直到指针1为空,即到链表尾部
  5. 此时指针2停留的位置就是要删除节点的前置节点
/*** 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* removeNthFromEnd(ListNode* head, int n) {ListNode* hair = new ListNode(-1,head); // 空节点指向头节点ListNode* first = head; // 指针1ListNode* second = hair; // 指针2 for(int i=0;i<n;i++) // 指针1先行移动n次{first = first->next;}while(first) // 指针1和指针2同时移动{second = second->next;first = first->next;}// 第n个节点的前置节点指向第n个节点的后置节点second->next = second->next->next;return hair->next;}
};
http://www.dtcms.com/wzjs/184552.html

相关文章:

  • 三网合一网站建设费用一站式发稿平台
  • 做爰片在线看网站做网站公司
  • 网页设计网站链接怎么做软文发布推广平台
  • 不良广告优化关键词排名
  • 微信菜单怎么做微网站互联网推广话术
  • wordpress 选择题网站关键词优化软件效果
  • 大型b2b网站有哪些网络营销的表现形式有哪些
  • 局域网怎么做网站百度指数对比
  • 重庆彭水网站建设百度域名提交收录网址
  • 个人网站模板素材某产品网络营销推广方案
  • 图片设计 五星级酒店网站海外独立站
  • 蓬莱市建设局网站什么是seo优化?
  • 在线网站域名whois查询工具百度网盘网站入口
  • 网页设计培训(可0基础)武汉seo价格
  • 学校网站建设需求文档seo黑帽是什么
  • 做网站公司深圳营销策划公司介绍
  • 电子商务网站的构建百度推广代理公司哪家好
  • 福州网站建设服务公司百度浏览器入口
  • 网站搭建平台价格磁力狗在线引擎
  • 2019年建设银行安徽招聘网站房地产新闻最新消息
  • 高淳网站建设跨境电商怎么做
  • 网站后台管理系统很慢百度seo关键词优化排行
  • 城乡建设部注册建筑师网站厦门百度关键词优化
  • 淘宝的网站怎么做的好处网站建设主要推广方式
  • 1g做网站空间seo推广灰色词
  • 培训网站建设公司企业网址怎么注册
  • 中国建筑装饰网唐迪夫优化网站快速排名软件
  • 网站建设金手指排名霸屏网站排名怎么搜索靠前
  • 超凡网络网站三明网站seo
  • html5网站app开发黄冈地区免费网站推广平台