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

北京网站建设 和君百度app客服人工在线咨询

北京网站建设 和君,百度app客服人工在线咨询,图文广告开店培训班,新开传奇最大网站999今天讲解两道链表OJ题目。 1.链表的中间节点 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 输入:head [1,2,3,4,5] 输出:[3,4,5] 解释:链表只有一个…

今天讲解两道链表OJ题目。

1.链表的中间节点 

给你单链表的头结点 head ,请你找出并返回链表的中间结点。

如果有两个中间结点,则返回第二个中间结点。

示例 

 

输入:head = [1,2,3,4,5]
输出:[3,4,5]
解释:链表只有一个中间结点,值为 3 

方法1【 双指针】

时间复杂度O(N)

思想:两个指针,faster的速度是slow两倍,则当faster走到结尾时,slow则走到链表中间。

易错:循环条件 

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode* middleNode(struct ListNode* head)
{struct ListNode*faster=head;struct ListNode*slow=head;while(faster && faster->next)//条件没想到{faster=faster->next->next;slow=slow->next;}return slow;
}

2.移除链表元素

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 

示例 

输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]

方法1【三指针--无哨兵位】

时间复杂度:O(N)

思想:三个指正,cur负责对比val,tmp负责存储删除元素的下一个元素地址,prve负责存储删除元素的上一个元素地址

易错:

  • 记住prve是cur的前一个元素,那么它从NULL开始
  • 循环条件
  • 记得处理头节点和尾节点
  • 造成野指针的错误❌

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode* removeElements(struct ListNode* head, int val) 
{struct ListNode*cur=head;struct ListNode*prve=NULL;while(cur){if(cur->val == val){struct ListNode*tmp=cur->next;free(cur);if(prve){prve->next=tmp;}                                   else{head=tmp;}                          cur=tmp;}else{prve=cur;cur=cur->next;}}return head;}

方法2【双指针---无哨兵位】

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode* removeElements(struct ListNode* head, int val) 
{struct ListNode*newhead=NULL;struct ListNode*tail=NULL;struct ListNode*cur=head;while(cur){if(cur->val != val){if(newhead == NULL){newhead=tail=cur;}else{tail->next=cur;tail=tail->next;}cur=cur->next;}else{struct ListNode*tmp=cur->next;free(cur);cur=tmp;}if(tail){tail->next=NULL;}} return newhead;          
}//❌改进

那有哨兵位怎么写呢?

当然,这道题还可以联系前面顺序表(移除val)。

代码---------→【唐棣棣 (TSQXG) - Gitee.com】

联系---------→【邮箱:2784139418@qq.com】

http://www.ds6.com.cn/news/21628.html

相关文章:

  • 网络网站制作百度竞价推广后台
  • 长沙网站制作公司报价联合早报 即时消息
  • 安徽专业网站制作公司免费网站注册平台
  • 企业做网站需要什么条件安徽seo
  • 长春哪里有做网站的小红书推广策略
  • 如何才能让自己做的网站百度能搜nba排名西部和东部
  • 北京网站建设石榴汇网络营销的种类
  • 结合七牛云做视频网站搜狗收录查询
  • wordpress 图片质量宜昌seo
  • 网站开发中 即将上线陕西seo顾问服务
  • 湘潭商城网站建设定制网店交易平台
  • 怎样给网站做备案螺蛳粉营销策划方案
  • 有什么网站可以做设计兼职中国国家培训网正规吗
  • 仓山区城乡建设局网站外包公司的人好跳槽吗
  • 农产品网站建设方案怎么恶意点击对手竞价
  • 西安网站建设 企业建站线上营销渠道有哪些
  • 林州网站建设公司天津搜狗seo推广
  • 深圳网站建设 卓国际新闻最新消息今天 新闻
  • 佛山专业网站建设公司百度优化插件
  • 手机网站用什么软件做的好处广州抖音推广
  • 接做网站简介北京百度推广代理
  • 知名做漫画网站网络教学平台
  • 凡科建站如何制作论坛中和seo公司
  • 贵州贵州省住房和城乡建设厅网站搜索引擎优化的内容包括
  • 找人做网赌网站需要多少钱抖音seo优化怎么做
  • 精通网站建设pdf怎么自己做一个网页
  • 给个网站谢谢注册域名
  • 做网站公众号百度seo关键词排名优化软件
  • 横屏滚动网站互联网的推广
  • 重庆工程建设信息网官网查询什么是sem和seo