链表初始化后,再用定义的添加头节点方法没有用。// 一个类链表里包含类节点
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++;
}
}链表初始化用到了添加头结点的方式,再在主函数里添加头结点,不知道为什么添加不了。都是初始化时候的值希望能有大佬帮下忙
添加回答
举报
0/150
提交
取消