模拟链表

public class MyLinkList {
@NonNull
private Node mNode;

public MyLinkList() {
    //创建头结点
    mNode = new Node();

}


public void add(Node node) {
    //创建临时移动指针指向节点
    Node temp = mNode;
    while (temp.next != null) {
        temp = temp.next;
    }
    //将尾部节点的next指向node
    temp.next = node;

}

public int length() {
    Node temp = mNode;
    int l = 0;
    while (temp.next != null) {
        l++;
        temp = temp.next;
    }
    //结尾了
    return l;

}

public void removeLast() {
    Node temp = mNode;
    while (temp.next != null) {
        if (temp.next.next != null) {
            temp = temp.next;
        } else {
            temp.next = null;
        }
    }
    //尾部
}

public void removeNode(Node node) {
    Node temp = mNode;
    while (temp.next != null) {
        //下一个节点不是该节点
        if (temp.next != node) {
            temp = temp.next;
        } else {
            //下一个节点就是该节点,将next指向下下节点
            temp.next=temp.next.next;
        }
    }
}


public static class Node {
    private String data;
    private Node next;

    public Node() {
    }

    public Node(String data) {
        this.data = data;
    }
}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。