gpt4 book ai didi

java - 删除链表元素,我的很基本但让我很困惑

转载 作者:行者123 更新时间:2023-12-01 10:00:13 27 4
gpt4 key购买 nike

解决了,但还是不明白ListNode的这些基本部分(下面附有问题描述):

1.“1->2->3->3->4->5->3”是Java中ListNode的标准表达式吗? removeElements中的参数是“head”,看起来像一个节点,怎么可能输入一个ListNode,或者是一个“嵌套”的ListNode?

2.“removeElements”函数“返回”“dummy.next”,它与第一个输入参数具有相同的类型。但是在while循环中,obj.next肯定是一个Node(我认为),当涉及到“return”语句时,它显然返回一个类型,就像“1->2->3->3->4-” >5->3",这怎么可能?

删除链接列表元素例子给定 1->2->3->3->4->5->3,val = 3,您应该将列表返回为 1->2->4->5

/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
/**
* @param head a ListNode
* @param val an integer
* @return a ListNode
*/
public ListNode removeElements(ListNode head, int val) {
// Write your code here
ListNode dummy = new ListNode(0);
dummy.next = head;
head = dummy;
while (head.next != null) {
if (head.next.val == val) {
head.next = head.next.next;
} else {
head = head.next;
}
}
return dummy.next;
}
}

最佳答案

1 - Java 中没有标准的 ListNode 类。

2 - obj.next 不是 Node 而是 ListNode。你可以在评论区看到它。 ListNode 类有一个类型为 ListNode 的 next 成员。

实际上 removeElements 方法不会返回类似: 1->2->3->3->4->5->3 但它只返回 1 . 所有元素,如 1,2,3,3,.. 都是一个 ListNode,您可以使用 next 访问其他元素。

关于java - 删除链表元素,我的很基本但让我很困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36868951/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com