JAVA环形链表解决约瑟夫环问题
大神求教···classChild{intnum;ChildnextChild=null;publicChild(intnum){this.num=num;}}class...
大神求教···
class Child
{
int num;Child nextChild=null;
public Child(int num)
{this.num=num;}
}
class Play
{
Child firstChild=null;Child temp=null;
//初始化环形链表
public void creatLink()
{
for(int i=1;i<10;i++)
{
if(i==1)
{ Child a=new Child(i);
this.firstChild=a;
this.temp=a; }
else if 省略i=10尾接头temp.nextChild=this.firstChild;
else{Child a=new Child(i);
temp.nextChild=a;
temp=a;}
}
}
}
简化了下代码,环形链表这我没理解,for里面循环只是temp、temp.nextChild不断跳动被重新赋值,变没有生成完整的Child(1) Child(2)Child(3) 那链表在哪呢?
public void show() {
Child temChild = this.firstChild;
do {
System.out.println(temChild.no + "###");
temChild = temChild.nextChileChild;
} while (temChild != this.firstChild);
接这个能打出指针跳动,链表没懂这个我只能理解成下面这样···
temChild = this.firstChild.nextChileChild
temChild = this.firstChild.nextChileChildnextChileChild 展开
class Child
{
int num;Child nextChild=null;
public Child(int num)
{this.num=num;}
}
class Play
{
Child firstChild=null;Child temp=null;
//初始化环形链表
public void creatLink()
{
for(int i=1;i<10;i++)
{
if(i==1)
{ Child a=new Child(i);
this.firstChild=a;
this.temp=a; }
else if 省略i=10尾接头temp.nextChild=this.firstChild;
else{Child a=new Child(i);
temp.nextChild=a;
temp=a;}
}
}
}
简化了下代码,环形链表这我没理解,for里面循环只是temp、temp.nextChild不断跳动被重新赋值,变没有生成完整的Child(1) Child(2)Child(3) 那链表在哪呢?
public void show() {
Child temChild = this.firstChild;
do {
System.out.println(temChild.no + "###");
temChild = temChild.nextChileChild;
} while (temChild != this.firstChild);
接这个能打出指针跳动,链表没懂这个我只能理解成下面这样···
temChild = this.firstChild.nextChileChild
temChild = this.firstChild.nextChileChildnextChileChild 展开
展开全部
追问
看了可是没解决额~creatLink()内for不断循环,i=1时temp、firstChild是CHild(1);i=2时Child(1)的nextChild指向了Child(2)然后temp指向了Child(2)这我明白,可是for结束了创建的小孩不都不存在了吗?例如temp由Child(1)变为Child(2) 那Child(1)不存在了~哪还有链?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询