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