当前位置: 首页 > 知识库问答 >
问题:

删除链表元素,我的基本但让我深感困惑

法玮
2023-03-14

解决了它,但仍然不明白ListNode的这些基本部分(问题说明附后):

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

2.“removeElements”函数“return”“dummy.next”,它的类型与第一个输入参数相同。但是在while循环中,obj.next肯定是一个节点(我想),当谈到“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个答案

顾曾笑
2023-03-14

1-在Java中没有standart ListNode类。

2-obj.next不是节点,而是listnode。您可以在注释字段中看到它。ListNode类的下一个成员类型为ListNode。

实际上RemoveElements方法并不返回类似于:1->2->3->3->4->5->3的内容,而是返回1。所有元素如1,2,3,3,…是一个ListNode,您可以使用Next访问另一个ListNode。

 类似资料:
  • 我不知道如何同时有元音和辅音。代码的元音部分工作正常。我不知道如何添加辅音。 我似乎无法理解代码的辅音部分

  • 问题内容: 我正在做非常简单的int除法,而结果却很奇怪。 此代码按预期方式打印: 此代码打印为 不 期望: 这里发生了什么? (Windows XP Pro,Java 1.6在Eclipse 3.4.1中运行) 问题答案: 该值是一个 八进制 (以8 为底)常数。等于128(十进制)。 从Java语言规范的第3.10.1节开始: 八进制数字由一个ASCII数字0和一个或多个ASCII数字0至7组

  • 问题内容: 我有一个原始类型数组,我想从中删除指定索引处的元素。正确而有效的方法是什么? 我正在寻找以下面提到的方式删除元素 但是上述方法看起来只能与Object一起使用,而不能与原语一起使用。 还有其他选择吗?我不能使用任何第三方/附加库 问题答案: 您需要创建一个新数组并复制元素。例如这样的事情: 注意:以上尚未经过测试/调试。 您也可以使用for循环进行复制,但在这种情况下应更快。 该方法最

  • 我目前正在实现一个链表,在一个删除元素的函数上遇到了一些问题。下面是整个功能。如果列表为空,则退出程序。如果列表只有一个元素,那么我只使用另一个函数

  • 我在spring中读到了关于事务管理的内容,在我们的服务方法或服务类中使用@Transactional注释,并用它的传播、隔离、超时和只读属性配置我们的事务。现在我的问题是: 1)如果我们适当地使用@Transactional来实现ACID属性,我们还需要使用同步(使用synchronized关键字)或多线程吗? 2)在我们的java EE Web应用程序中仍然使用java多线程的不同场景是什么?

  • 下面是下一个gc日志(第一行是我执行的时间减去应用程序停止工作的时间)。 在时,该应用程序再次停止工作。 然后我再次使用命令,应用程序再次返回ok。 下面是结果文件中的一个特殊线程。除了in_vm之外,所有线程的状态都被阻塞。 这里是我的环境。