错误:类型不兼容:LinkedList2.Node无法转换为Node

时间:2018-12-14 17:26:25

标签: java

我对自己的代码有疑问。 当我编译下面的代码时,它不起作用,并且会出错。

LinkedListIndex2.java:62:错误:类型不兼容:LinkedList2.Node无法转换为Node         找到的节点= KthToLast(ll.getFirst(),k);                                           ^ 注意:一些消息已简化。用-Xdiags:verbose重新编译以获取完整输出 1个错误

我找不到解决此错误的方法。请给我说明如何修改代码及其原因!。

谢谢!

class LinkedList2{

Node header;

static class Node{
    int data;
    Node next = null;
}

LinkedList2(){
    header = new Node();
}

void append(int d){
    Node end = new Node();
    end.data = d;
    Node n = header;
    while (n.next != null){
        n = n.next;
    }
    n.next = end;
}

void delete(int d){
    Node n = header;
    while ( n.next != null){
        if(n.next.data == d){
            n.next = n.next.next;
        }else {
            n = n.next;
        }
    }
}

void retrieve(){
    Node n = header.next;
    while(n.next != null){
        System.out.print(n.data + "->");
        n = n.next;
    }
    System.out.println(n.data);
}

Node getFirst() {
    return header.next;
  }
}

public class LinkedListIndex2{

public static void main (String[] args){
    LinkedList2 ll = new LinkedList2();
    ll.append(1);
    ll.append(2);
    ll.append(3);
    ll.append(4);
    ll.retrieve();
    ll.delete(1);
    ll.retrieve();

    int k =2;
    Node found = KthToLast(ll.getFirst(), k);
    System.out.println(found.data);
}
private static Node KthToLast(Node first, int k) {
    Node p1 = first;
    Node p2 = first;

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

    while ( p1 != null){
        p1 = p1.next;
        p2 = p2.next;
    }
    return p2;
  }
}

0 个答案:

没有答案