在Java Node类中放置Del​​eteNode的位置?

时间:2014-04-02 01:36:38

标签: java linked-list

我有以下用于实现链表的Node类:

class Node {

  Node next = null;
  int data;

  public Node (int d) {
    data = d;
  }

  void AppendToTail (int d) {
    Node end = new Node(d);
    Node current = this;
    while (current.next != null) {
      current = current.next;
    }

    current.next = end;
  }

}

我想创建一个给定Node的方法,它会从链接列表中删除它。所以,我知道如何创建这样的函数。但我不确定如何才能让它适合我的课程。

Node deleteNode(Node head, Node toDelete) {
    Node n = head;
    if (n.data == toDelete.data) {
      return head.next;
    }

    while (n.next != null) {
      if (n.next.data == toDelete.data) {
         n.next = n.next.next;
         return head;
      }
      n = n.next;
    }
    return head;
  }

但是,我没有看到如何将它放入我的Node类中。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

使该函数成为Node类中的静态函数。

答案 1 :(得分:0)

我看到的一个问题是你没有将append和delete函数放入链表类而不是节点类中。您应该让节点类与链表类完全分开。因此,您可以在链接列表类中添加和删除节点类实例的append和delete方法。这对您有所帮助,因为您不必担心其创建的节点类,您可以只关注链表类中的实现。