IMmicheal 2016-04-03 09:34 采纳率: 33.3%
浏览 1465

寻找一个单向链表的中项 java 调用问题!谢谢大家

//寻找一个单向链表的中项,如果存在两个则返回前一个,给出算法描述,并实现
package pra_bd;

import java.awt.DisplayMode;

import javax.naming.spi.DirStateFactory.Result;

import org.w3c.dom.Node;

public class LinkList {
//头结点
Link first;
//单链表构造函数
public LinkList(){
first = null;
}
//判断单链表是否为空
public boolean isEmpty(){
return (null==first);
}
//在单链表头插入新结点
public void insertFirst(Integer value, Integer integer){
Link newLink = new Link(value);
newLink.next = first;
first = newLink;
}
//删除单链表头
public Link deleteFirst(){
Link result = first;
first = first.next;
return result;
}
//显示链表
public void display(){
Link current = first;
while(null!=current){
current.display();
current = current.next;
}
System.out.println("");
}
//计算单链表长度
public int getLength(){
int result = 0;
Link current = first;
while(null!=current){
result++;
current = current.next;

 }
 System.out.println("长度: "+result);
 return result;

}

private class Link{
long lvalue;
Link next;
//结点构造函数
public Link(long value){
lvalue = value;
next = null;
}
//显示结点
public void display(){
System.out.print(lvalue+" ");
}
public long length(){
return this.length( );
}

}
public static  Link getMiddleNode(Link first) {
    // TODO Auto-generated constructor stub

    if (first==null||first.next==null ){
        return first;
    }
    Link p=first;
    Link q=first;
    while(q.next!=null){
        q=q.next;
        p=p.next;
        if(q.next!=null){
            q=q.next;


        }
        System.out.println("fanhui"+p);
    }
    return p;

}
public long length(Link node){
    if(node==null)
        return 0;
    else if(node.next==null)
        return 1;
    else 
        return 1+this.length(node.next);
}

public static void main(String[] args) {
// TODO Auto-generated method stub
//测试单链表
LinkList linklist = new LinkList();
int a [] = {100,200,300};
for(int i=0;i<a.length;i++){
linklist.insertFirst(a[i],new Integer(i+1));
}
// linklist.insertFirst(1);
// linklist.insertFirst(2);
// linklist.insertFirst(3);
// linklist.insertFirst(4);
// linklist.insertFirst(5);
// linklist.insertFirst(6);
linklist.display();
// linklist.deleteFirst();
// linklist.deleteFirst();

linklist.getLength();
Link.getMiddleNode();//就是这一行报错!!!!
}
}
最后getmiddlenode怎么调用啊,显示有问题,谢谢大家!

  • 写回答

2条回答

  • 毕小宝 博客专家认证 2016-04-03 10:24
    关注

    首先,你的getMiddleNode方法定义的是LinkList的static的,不是Link类的,所以报编译错误了。
    其次,你可以看编译器的错误提示信息,快捷键ctrl+1(数字1),修正代码如下:

     LinkList.getMiddleNode(linklist.first);
    
    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?