单链表的增删改代码实现
定义节点:
class Node{ int value; Node next; public Node(int value ){ this.value = value; } @Override public String toString() { return "Node{" + "value=" + value + '}'; } }
定义链表及其操作:
class SingleLinkedList{ //定义头结点 private Node head = new Node(0); //尾插法 public void add_Node(Node newNode){ Node temp = head; while (temp.next !=null){ temp = temp.next; } temp.next = newNode; } public Node getHead() { return head; } //头插法,增加节点 public void addFirst(Node newNode){ if (head.next == null){ head.next = newNode; }else { newNode.next = head.next; head.next = newNode; } } //删除节点 public void deleteNode(Node node){ Node temp = head; if (temp.next == null){ System.out.println("链表为空"); return; } while (temp !=null){ if (temp.next == node){ temp.next = temp.next.next; break; } temp = temp.next; } } //获取链表长度 public int getLength(Node head){ Node temp = head; int length = 0; if (head.next == null){ System.out.println("链表为空"); }else { while (temp.next != null){ length++; temp = temp.next; } } return length; } //打印链表 public void printLinkedList(){ Node temp = head; if (temp.next == null){ System.out.println("链表为空"); } while (temp.next != null){ temp = temp.next; System.out.println(temp); } } }
学习的博客多用于在笔记中,防止笔记过于臃肿,所以将样例及运行结果放在博客中,后以超链接的形式记录在笔记中,所以有些博文过于单薄。如果有小伙伴遇到问题欢迎评论,看到就会回复,学渣一枚,加油努力。