为了账号安全,请及时绑定邮箱和手机立即绑定

java链表添加头节点方法没有用

java链表添加头节点方法没有用

泛舟湖上清波郎朗 2019-04-25 16:15:21
链表初始化后,再用定义的添加头节点方法没有用。// 一个类链表里包含类节点 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++;         }     }链表初始化用到了添加头结点的方式,再在主函数里添加头结点,不知道为什么添加不了。都是初始化时候的值希望能有大佬帮下忙
查看完整描述

2 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

原来是print(head)里的head节点是初始化的head节点,并不是添加后的新head节点

查看完整回答
反对 回复 2019-05-14
  • 2 回答
  • 0 关注
  • 640 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信