日期:2014-05-20  浏览次数:20654 次

简单的链表问题
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

------解决方案--------------------
//插入的时候,错误的改变了link的值,修改后的代码为

//在链表末尾插入数据
void insertTail(int element)
{
LinkList 末尾=this;
while(末尾.link!=null)
末尾=末尾.link;
末尾.link=new LinkList(element,null);
}

//经测试正确输出
1
2
3
4
5

------解决方案--------------------
//运行了 果然是 不过还是不太理解 要多看一下,新手 学习中 呵呵
//感觉只了解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;
}
}

}