用Java实现截取单链表中后k个节点
时间: 2023-06-19 15:04:27 浏览: 63
以下是用Java实现截取单链表中后k个节点的代码:
```
public ListNode getKthFromEnd(ListNode head, int k) {
ListNode slow = head;
ListNode fast = head;
for (int i = 0; i < k; i++) {
fast = fast.next;
}
while (fast != null) {
slow = slow.next;
fast = fast.next;
}
return slow;
}
```
具体的思路是,先让快指针 fast 先走 k 步,然后让慢指针 slow 和 fast 同时走,直到 fast 走到链表的末尾,此时 slow 所指的节点就是倒数第 k 个节点。
相关问题
java中截取最后2个字符
在Java中,要截取一个字符串的最后两个字符,可以使用String类提供的substring()方法。该方法可以截取字符串的指定部分,并返回一个新的字符串。我们可以先获取字符串的总长度,然后再用总长度减去2,得到要截取的位置。接着,将该位置作为参数传入substring()方法即可截取最后两个字符。
具体的实现方法如下:
String str = "Hello World";
int len = str.length(); // 获取字符串的总长度
String lastTwoChar = str.substring(len-2, len); // 截取最后两个字符
上述代码中,先定义一个字符串变量str,并赋值为"Hello World"。然后使用String类的length()方法获取该字符串的总长度,存储在变量len中。接着,调用substring()方法,对字符串进行截取操作。substring()方法接受两个参数,分别为截取起始位置和截取结束位置。我们将起始位置设置为字符串总长度减去2(即倒数第2个字符所在的位置),结束位置设置为字符串总长度(即字符串的最后一个字符所在的位置的下一个位置)。最后,将结果保存在lastTwoChar变量中。
上述代码执行完成后,lastTwoChar的值为"ld",即字符串"Hello World"的最后两个字符。
Java中截取字符串,截取特定字符的前后内容
Java中截取特定字符的前后内容可以使用indexOf()和substring()方法。例如:
```java
String str = "Hello, world! How are you?";
int index = str.indexOf(","); // 获取逗号的位置
String subStr = str.substring(0, index); // 截取逗号前面的内容
System.out.println(subStr); // 输出:Hello
int index2 = str.indexOf("?"); // 获取问号的位置
String subStr2 = str.substring(index+2, index2); // 截取问号前面的内容(加2是因为逗号后面有一个空格)
System.out.println(subStr2); // 输出:How are you
```
另外,如果要截取特定字符的后面的内容,可以将substring()方法的参数进行调整。例如:
```java
String str = "Hello, world! How are you?";
int index = str.indexOf(","); // 获取逗号的位置
String subStr = str.substring(index+2); // 截取逗号后面的内容(加2是因为逗号后面有一个空格)
System.out.println(subStr); // 输出:world! How are you?
```