public class LinkList
{
private int data;
private LinkList link;

public LinkList(int data,LinkList link)
{
this.data=data;
this.link=link;
}

public void insertTail(int element)
{
if(link==null)
{
link=new LinkList(element,link);
}
while(link.link!=null)
{
link=link.link;
}
link.link=new LinkList(element,link.link);
}

public static void main(String[] args)
{
LinkList head=new LinkList(1,null);
LinkList cursor=head;
cursor.insertTail(2);
cursor.insertTail(3);
cursor.insertTail(4);
cursor.insertTail(5);

while(head!=null)
{
System.out.println(head.data);
head=head.link;                     
}
}
}主要是想在链表末尾插入元素,为什么只打印出1 4 5,而不是1 2 3 4 5

解决方案 »

  1.   

    //插入的时候,错误的改变了link的值,修改后的代码为//在链表末尾插入数据
    void insertTail(int element)
    {
       LinkList 末尾=this;
       while(末尾.link!=null)
          末尾=末尾.link;
       末尾.link=new LinkList(element,null);
    }//经测试正确输出
    1
    2
    3
    4
    5
      

  2.   

    //运行了 果然是 不过还是不太理解 要多看一下,新手 学习中 呵呵
    //感觉只了解j2se后做j2me对java还是不够理解啊
    //托 redduke1202 的福,下面是完整代码
    /*
     * LinkList.java
     *
     * Created on 2007年2月3日, 下午10:58
     *
     * To change this template, choose Tools | Template Manager
     * and open the template in the editor.
     *
     *//**
     *
     * @author Administrator
     */
    public class LinkList
    {    private int data;
        private LinkList link;    /** Creates a new instance of LinkList */
        public LinkList(int data, LinkList link)
        {
            this.data = data;
            this.link = link;
        }    /**
         * 
         * @param element 
         */
        public void insertTail(int element)
        {
            LinkList Tail = this;
            
            while(Tail.link != null)
            {
                Tail = Tail.link;
            }        Tail.link = new LinkList(element, null);
        }    /**
         * 
         * @param args 
         */
        public static void main(String args[])
        {
            LinkList head = new LinkList(1, null);
            LinkList cursor = head;
            cursor.insertTail(2);
            cursor.insertTail(3);
            cursor.insertTail(4);
            cursor.insertTail(5);        while(head != null)
            {
               System.out.println(">>>>>>>>>head.data = " + head.data);
               head = head.link;
            }
        }}