环形链表---Java

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了环形链表---Java相关的知识,希望对你有一定的参考价值。

/**
 * 
 * @author Administrator
 * 功能:丢手帕问题
 */
package com.litao;

public class Demo4 {
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        CycLink cycLink = new CycLink();
        cycLink.setLen(9);
        cycLink.createLink();
        cycLink.show();
        
    }

}

//节点
class Child{
    int no;
    Child nextChild = null;
    
    public Child(int no)
    {
        //给一个编号
        this.no = no;
    }
}

//环形链表
class CycLink{
    //先定义一个指向链表第一个小孩的引用
    //指向第一个小孩的引用,不能动
    Child firstChild = null;
    Child temp = null;
    //表示链表的大小,共有几个小孩
    int len = 0;
    //设置链表的大小
    public void setLen(int len)
    {
        this.len = len;
    }
    //初始化环形链表
    public void createLink()
    {
        for (int i = 1; i <= len; i++) {
            if(i == 1){
                //创建第一个小孩                
                Child ch = new Child(i);
                this.firstChild = ch;
                this.temp = ch;                
            }
            else if(i >= 2 && i != len){
                //继续创建小孩
                Child ch = new Child(i);
                temp.nextChild = ch;
                temp = ch;
            }
            else if(i == len)
            {
                Child ch = new Child(i);
                temp.nextChild = ch;
                temp = ch;
                temp.nextChild = firstChild;
            }
        }
    }
    
    //打印该环形链表
    public void show()
    {
        //定义一个跑龙套的
        Child temp = this.firstChild;
        do{
            System.out.println(temp.no);
            temp = temp.nextChild;
        }while(temp != firstChild);
        
    }
    
}

 

以上是关于环形链表---Java的主要内容,如果未能解决你的问题,请参考以下文章

java刷题--141环形链表2

LeetCode Java刷题笔记—142. 环形链表 II

Day557.单向环形链表 -数据结构和算法Java

Java 数据结构 & 算法宁可累死自己, 也要卷死别人 8 环形链表

Java 数据结构 & 算法宁可累死自己, 也要卷死别人 8 环形链表

Java算法 每日一题 编号142:环形链表 II