220314

news/2024/11/29 11:33:17/

1.快慢指针

主要用于链表遍历节点的功能

class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {//要想能够返回头节点,需要给head节点添加一个头节点,便于返回结果ListNode dummyNode = new ListNode(0);dummyNode.next = head;//定义快慢指针ListNode fast = dummyNode;ListNode slow = dummyNode;//当快节点指向null时,要使慢节点指向要删除节点的前一个,故和fast的间隔为n + 1,所以要先让fast先走for(int i = 0; i <= n;i++){fast = fast.next;}while(fast != null){fast = fast.next;slow = slow.next;}// slow.next = slow.next.next;//slow.next = null;//这样写有问题,应该把要删除的节点置为nullslow.next = slow.next.next;return dummyNode.next;
}
}

2.递归

递归本质就是不断重复的做同一件事情,而在这题中,将节点不断的交互,就是一级一级的过程

其中我们应该关心的主要有三点:

  1. 返回值
  2. 调用单元做了什么
  3. 终止条件

 

在本题中:

返回值:交换完成的子链表
★调用单元:设需要交换的两个点为 headnexthead 连接后面交换完成的子链表next 连接 head完成交换
终止条件:head 为空指针或者 next 为空指针,也就是当前无节点或者只有一个节点,无法进行交换

class Solution {public ListNode swapPairs(ListNode head) {if(head == null || head.next == null){return head;}定义需要交互的两个节点,head和nextListNode next = head.next;//当前头节点指向以后完成后的子链表head.next = swapPairs(next.next);//因为交互,当前的next的下一个指向headnext.next = head;//返回当前链表的头节点,即为nextreturn next;}
}

 

 


http://www.ppmy.cn/news/277030.html

相关文章

jenkins

1 Jenkins简介 Jenkins 开源 Java开发的 提到是Java开发的&#xff0c;一定联想云心Jenkins jdk环境 持续集成工具&#xff0c;用于监控持续重复的工作 假设没有Jenkins的话会是怎样&#xff1f; 《Git学习之旅》《Maven学习之旅》 平时去开发一个项目 每当修改了功能或者完善了…

20101206

time: 2010-12-6 9:56:57<-------主题&#xff1a;记录并发送的回调ph_audio_rec_cbk------->ph_audio_rec_cbk&#xff1a;如需要记录到文件则record_mic_resample_stream&#xff0c;apply half-duples SPK driven attenuator&#xff0c;if (mode SPK has priority) …

101003 ~ 101009

20:54 2010-10-3 配置无线环境。 失败,网通限端口。 8:45 2010-10-4 开题报告。 无线环境已配置。 8:45 2010-10-5 继续开题报告。 8:30 2010-10-6 仍然是开题报告。 2010-10-7 搭车返程。 9:03 2010-10-8 开题报告。 9:09 2010-10-9 ~ 9:42 2010-10-9 笔…

干货|SpringCloud-Eureka注册中心、服务提供者与消费者

内容速览&#xff1a; 一、关于注册中心、服务注册、服务发现 1问&#xff1a;为什么需要注册中心&#xff1f;2问&#xff1a;什么是服务注册&#xff1f;3问&#xff1a;什么是服务发现&#xff1f; 二、关于 Eureka 实现服务注册与服务发现 1.Eureka的特点2.Eureka注册中心…

libevent多线程使用事项

libevent多线程使用事项 Posted on 2014-03-14 18:07 浮萍晓生 阅读( 113) 评论( 0) 编辑 收藏 原文链接地址&#xff1a; http://www.cnblogs.com/walker-lc/articles/3601100.html 在linux平台上使用c开发网络程序的同志们一般情况下都对鼎鼎大名的libevent非常的熟悉了。但…

20221106

最近一直在看分层强化学习&#xff0c;今天看了一篇Hierarchical Reinforcement Learning for Relay Selection and Power Optimization in Two-Hop Cooperative Relay Network。两跳协同中继网络中中继选择和功率优化的层次强化学习。 他是分了两层来处理不同动作。第一层先做…

20221030

1、将 整 个 /etc 目 录 下 的 文 件 全 部 打 包 并 用 gzip 压 缩 成/back/etcback.tar.gz [rootlocalhost /]# tar czvf /back/etcback.tar.gz /etc 2、查看 /back/etcback.tar.gz 文件中有哪些文件&#xff1f; [rootlocalhost back]# tar -tf etcback.tar.gz 3、将/back/…

计算机错误代码18,C1900101-30018错误代码是什么意思?一起看看解决方法

最近&#xff0c;一些电脑用户在升级Win10系统的时候&#xff0c;遇到了Win10系统升级失败的问题。其中&#xff0c;很多网友反映&#xff1a;Win10系统升级失败的时候&#xff0c;系统提示&#xff1a;C1900101-30018错误。那么&#xff0c;C1900101-30018的错误代码是什么意思…