插入和删除节点

插入和删除节点

相对于数组,链表的特点:

1.可以有无限多个节点,长度不限制

2.无论插入还是删除,并不需要挪动位置

 

建立一个节点对象,里面包含id,name,和下一个节点

public class Node {
    public int id;
    public String name;
    public Node next;
    
    public Node(int id,String name){
        this.id=id;
        this.name=name;
    }
}

初始化:

        Node n1=new Node(101, "熊大");
        Node n2=new Node(102, "熊二");
        Node n3=new Node(103, "熊三");
        Node n4=new Node(104, "熊四");
        
        n1.next=n2;
        n2.next=n3;
        n3.next=n4;
        n4.next=null;

新建一个节点n5到链表末尾

        Node n5=new Node(105, "熊五");
        Node tail=n1;
        while(tail.next!=null){
            tail=tail.next;
        }
        tail.next=n5;

新建一个节点n6到头节点之后

        Node head=n1;
        Node n6=new Node(106, "熊六");
        n6.next=head.next;
        head.next=n6;

新建一个节点n7到指定位置,id为103之后

        Node n7=new Node(107, "熊七");
        Node node1=n1;
        while(node1.id!=103){
            node1=node1.next;
        }
        n7.next=node1.next;
        node1.next=n7;

删除指定节点,id为104的节点

        Node node2=n1;
        while(node2.next.id!=104){
            node2=node2.next;
        }
        node2.next=node2.next.next;
posted @ 2018-04-07 11:04  xtu熊大  阅读(371)  评论(0编辑  收藏  举报