链表初始化后,再用定义的添加头节点方法没有用。
// 一个类链表里包含类节点 class MyNodeLsit { class Node { int val; Node next; Node (int val) { this.val = val; } } private Node head; private int size; public MyNodeLsit () { this.head = null; this.size = 0; } // 获得索引的值 public int getId (int index) { if(index >= this.size) { return -1; } Node cur = head; while( index-- > 0) { cur = cur.next; } return cur.val; } // 在第一个添加节点 public void addPreData (int val) { size++; Node newHead = new Node(val); if (head != null) { newHead.next = head; } head = newHead; } // 在最后一个添加节点 public void addLastData (int val) { this.size ++; Node newNode = new Node(val); Node cur = this.head; if(cur !=null) { while(cur.next != null) { cur = cur.next; } cur.next = newNode; } else { this.head = newNode; } } // 删除指定的节点 public void deleteAtindex(int index) { if(index >= this.size) { return; } Node cur = this.head; while(--index > 0) { cur = cur.next; } // 遍历到要删除的上一个节点处 cur.next = cur.next.next; this.size--; } // 在指定位置添加指定值 public void addAtIndex(int index, int val) { boolean b = index < 0; if (index >= this.size || b) { return; } else if(index == this.size-1) { this.addLastData(val); } else if(index == 0) { this.addPreData(val); } else { Node cur = this.head; Node newNode = new Node(val); while(--index > 0) { cur = cur.next; } newNode.next = cur.next; cur.next = newNode; this.size++; } }
链表初始化用到了添加头结点的方式,再在主函数里添加头结点,不知道为什么添加不了。
都是初始化时候的值
希望能有大佬帮下忙
holdtom
相关分类