ZBLOG

public class DoublyList { public DoubleNode head; public DoublyList() { this.head = new DoubleNode(); this.head.prev = null; this.head.next = null; } public boolean isEmpty() { re...

要使代码不报错,你需要在DoublyList类中添加以下方法:

  1. insertFirst(T x): 在链表的第一个位置插入元素x。
  2. delete(int i): 删除链表中索引为i的节点。
  3. find(T x): 查找链表中值为x的节点,并返回该节点。

下面是修改后的代码:

public class DoublyList<T> {
    // 其他代码...

    public DoubleNode<T> insertFirst(T x) {
        if (x == null)
            return null;
        DoubleNode<T> newNode = new DoubleNode<>(x, head, head.next);
        if (head.next != null)
            head.next.prev = newNode;
        head.next = newNode;
        return newNode;
    }

    public void delete(int i) {
        if (i < 0)
            return;
        DoubleNode<T> p = getNode(i);
        if (p != null) {
            p.prev.next = p.next;
            if (p.next != null)
                p.next.prev = p.prev;
        }
    }

    public DoubleNode<T> find(T x) {
        DoubleNode<T> p = head.next;
        while (p != null && !p.data.equals(x)) {
            p = p.next;
        }
        return p;
    }

    private DoubleNode<T> getNode(int i) {
		if(i < 0 || isEmpty())
			return null;

		DoubleNode<T> node = head.next;

		for(int j=0; j<i; j++) {
			if(node == null)
				return null;
			node = node.next;
		}

		return node;
	}

    // 其他代码...
}

这样就可以在除了insert()方法之外的其他地方使用这些新添加的方法了。请确保在使用这些方法之前对链表进行适当的初始化和操作,以避免空指针异常等错误。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=8687

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?