用java写一个单链表,输出倒数的第n个元素
时间: 2024-05-06 09:22:16 浏览: 8
以下是用Java实现单链表并输出倒数第n个元素的示例代码:
```java
public class ListNode {
int val;
ListNode next;
public ListNode(int val) {
this.val = val;
this.next = null;
}
}
public class Solution {
public int findNthFromEnd(ListNode head, int n) {
if (head == null || n <= 0) {
return -1;
}
ListNode p1 = head;
ListNode p2 = head;
for (int i = 0; i < n - 1; i++) {
if (p1 == null) {
return -1;
}
p1 = p1.next;
}
while (p1.next != null) {
p1 = p1.next;
p2 = p2.next;
}
return p2.val;
}
}
```
在这个示例代码中,我们定义了一个`ListNode`类来表示链表中的节点,并在`Solution`类中实现了一个`findNthFromEnd`方法来查找倒数第n个节点的值。
在该方法中,我们使用了两个指针`p1`和`p2`。首先让`p1`指向链表的头节点,并向后移动n-1个位置。然后,同时移动`p1`和`p2`,直到`p1`到达链表的末尾。此时,`p2`指向的节点就是倒数第n个节点。
需要注意的是,如果链表的长度小于n,或者n小于等于0,那么该方法会返回-1,表示查找失败。