天天看点

Java尾插法头插法建立链表

package 链表的实现;

public class Singlelinkedlist {
    public static void main(String[] args) {
        Node node = new Node(3);
        System.out.println(node.data);

        int arr[]={1,2,3};
        Node node1 = null;

        print(createNodetail(node1,arr));
        //System.out.println(1);

    }

    //定义链表操作函数
    //头插法建立链表
    public static Node createNodehead(Node node, int val[]){
        for(int i=0;i<val.length;i++){
            Node p=new Node(val[i]);
            p.next=node;
            node=p;
        }
        return node;
    }
    //尾插法建立链表
    public static Node createNodetail(Node node,int val[]){
        Node temp = null;   //辅助节点
        for(int i=0;i<val.length;i++){
            Node p=new Node(val[i]);
            if(node==null) {
                node=temp=p;
            }else{
                temp.next=p;
                temp=p;
            }
        }
        return node;
    }
    //输出链表
    public static void print(Node node){
        for(Node p=node;p!=null;p=p.next){
            System.out.print(p.data+" ");
        }
    }
    //定义单链表
    public static class Node{
        public int data;//结点数据
        public Node next; //指向下一个指针
        public Node(int data){
            this.data = data;
        }

    }
}