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

网站正在建设中动画2008 iis配置网站

网站正在建设中动画,2008 iis配置网站,中国个人优秀网站,上海网站定制团队24. 两两交换链表中的节点 题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/ 注意点: 遍历链表的时候什么时候截止(避免空指针异常或无限死循环的问题)? 节点数量为偶数或链表为空时,cur.ne…

24. 两两交换链表中的节点

题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/

注意点:

遍历链表的时候什么时候截止(避免空指针异常或无限死循环的问题)?

  • 节点数量为偶数或链表为空时,cur.next == null 为 true 时即可终止循环

  • 节点数量为奇数时,cur.next.next == null 为true 时即可终止循环

  • while(cur.next != null &&  cur.next.next != null){}
    

交换的代码具体怎么写?

解题思路:

定义一个虚拟头节点dummyhead,操作的指针cur(cur = dummyhead)一定要指向要反转的两个节点的前一个节点,如图所示

在这里插入图片描述

根据反转后的结果来看,cur指向2,2指向1,1指向3

在这里插入图片描述

具体操作如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

最后,返回链表

代码:

class Solution {public ListNode swapPairs(ListNode head) {ListNode dummyhead = new ListNode(-1);  // 定义一个虚拟头节点dummyhead.next =  head;ListNode cur = dummyhead;ListNode temp1;ListNode temp2;while(cur.next != null && cur.next.next != null){temp1 = cur.next;   // 临时节点,保存两个节点之中的第一个节点temp2 = cur.next.next.next;    // 临时节点,保存下一轮交换中的两个节点中的第一个节点cur.next = cur.next.next;   cur.next.next = temp1;temp1.next = temp2;cur = cur.next.next;}return dummyhead.next;}
}

19.删除链表的倒数第N个节点

题目链接:https://leetcode.cn/problems/remove-nth-node-from-end-of-list/

注意点:

操作指针要指向被删除节点的前一个节点

如何找到倒数的第n个节点?设置快慢指针。

解题思路:

定义一个虚拟头节点(省去对头节点的特殊判断),设置一个快指针一个慢指针,让快指针先移动n+1步,然后快慢指针再同时移动,直到快指针指向空节点,这样慢指针就指向了被删除的节点的前一个节点。

代码:

class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode dummyhead = new ListNode(-1);dummyhead.next = head;ListNode slow = dummyhead;  // 慢指针ListNode fast = dummyhead;  // 快指针// 快指针向前移动n+1位for(int i=0;i<=n;i++){fast = fast.next;}// 同时移动快慢指针while(fast != null){fast = fast.next;slow = slow.next;}// 删除节点slow.next = slow.next.next;return dummyhead.next;}
}

142.环形链表II

题目链接:https://leetcode.cn/problems/linked-list-cycle-ii/

注意点:

判断链表是否有环?设置快慢指针,有环的情况下,快慢指针一定会相遇。

如何找到环的入口?
在这里插入图片描述

解题思路:

定义快慢指针,快指针从起点出发以每次走两个节点的速度前进,慢指针从起点出发以每次走一个节点的速度前进;如果两个指针相遇,说明这个链表有环。

再定义两个节点,一个从头结点出发,一个从快慢指针相遇的节点出发,当这两个指针相遇时,此节点便是环的入口节点。

代码:

public class Solution {public ListNode detectCycle(ListNode head) {ListNode fast = head;  // 快指针ListNode slow = head;  // 慢指针while(fast != null && fast.next != null){fast = fast.next.next;   // 快指针走两步slow = slow.next;       // 慢指针走一步if(fast == slow){     // 找到了环ListNode index1 = fast;   // 从快慢指针的相遇点出发ListNode index2 = head;   // 从头出发while(index1 != index2){   // 相遇处就是环的入口处index1 = index1.next;index2 = index2.next;}return index1;}}return null;}
}
http://www.yayakq.cn/news/577761/

相关文章:

  • 深圳宝安商城网站建设公司金昌网站建设
  • 维修网站怎么做做网站到底怎么赚钱
  • 青海网站设计企业wordpress安装的模板文件在哪
  • 江西做网站的手机网站方案.doc
  • 汕头网站优化哪家好西安做网站微信公司哪家好
  • 什么行业要做网站建设推广这些洛阳自助建站
  • 连云港市建设银行网站哈尔滨服务最好的网站优化公司
  • 镇江网站建设工程三台县城乡建设网网站
  • 网站建设投诉去哪里投诉莆田网站开发公司
  • 黑科技引流推广神器免费seo优化关键词0
  • wordpress网站克隆上海公司注册地址有什么要求
  • 欧美网站特点安徽公共资源交易中心招标网
  • 临沂中小企业网站制作手机网站如何做才能兼容性各种手机
  • 勤哲网站开发视频wordpress文章展示模板
  • 百度网站快速排名公司网站建设搜索代码
  • 建设银行招标网站网站可以更更换空间吗
  • 互联网站备案登记表做网站公司找意向客户
  • 网站建设课程的感想临汾推广型网站开发
  • 有什么做设计的兼职网站如何推广品牌
  • 南京网站设计公司排名wordpress新建分类目录
  • 宁波优化网站厂家华为网站的建设建议
  • 网站优化吧商洛网络推广公司
  • 网站底部备案号个人微网站怎么做
  • 一个服务器可以备案几个网站吗厦门设计师网站
  • 企业网站域名备案流程网站介绍模板
  • 做网站和做电脑软件差别大吗东莞关键词优化效果
  • 企业网站建设课程体会做服装搭配图的网站有哪些
  • 全国建设部网站放置文件
  • 做外贸怎么网站找客户信息莱芜网球培训
  • 建设微网站需要多少钱如何自己做搜索网站