java 单链表 添加 插入 删除

来源:互联网 发布:固定资产标签软件 编辑:程序博客网 时间:2024/06/05 22:46

package nodelist;

public class LinkListTest {
public Node head = new Node();// 定义一个头节点

public LinkListTest() {}/** * 添加一个节点 *  * @param data */public void addNode(int data) {    Node node = new Node(data);    Node temp = head;    while (temp.next != null) {        temp = temp.next;    }    temp.next = node;}/** * 插入某位置节点 *  * @param index * @param node */public void insertNodeByIndex(int index, Node node) {    if (index < 1 || index > getListLength()) {        System.out.println("插入位置不合法");        return;    }    Node temp = head;    int length = 1;// 记录光标位置    while (temp.next != null) {        if (index == length) {            // 找到要插入的位置,进行插入操作,            node.next = temp.next;            temp.next = node;        } else {            temp = temp.next;        }        length++;    }}/** * 删除某位置的节点 *  * @param index */public void deleteNodeByIndex(int index) {    if (index < 1 || index > getListLength()) {        System.out.println("删除位置不合法");    }    Node temp = head;    int length = 1;    while (temp.next != null) {        if (index == length) {            temp.next = temp.next.next;            return;        } else {            temp = temp.next;        }        length++;    }}public int getListLength() {    int length = 0;    Node temp = head;    while (temp.next != null) {        length++;        temp = temp.next;    }    return length;}/** * 查找所有的节点 */public void displayAllNodes() {    Node temp = head;    while (temp.next != null) {        temp = temp.next;        System.out.println(temp.data);    }}/** * @param args */public static void main(String[] args) {    LinkListTest list = new LinkListTest();    list.addNode(1);    list.addNode(2);    list.addNode(3);    list.insertNodeByIndex(1, new Node(10));    list.displayAllNodes();    System.out.println("--------------");    list.deleteNodeByIndex(1);    list.displayAllNodes();    // System.out.println(list.getListLength());}

}

原创粉丝点击