第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

自己寫的鏈表debug報空指針,直接運行正常。

自己寫的鏈表debug報空指針,直接運行正常。

這個錯誤如題很奇怪,dubug下提示類中的Node類空指針,而直接運行就不會報錯誤,圖如下正常執(zhí)行dubug運行內(nèi)部實現(xiàn)代碼如下package?utils; /** ?*?@author?yqs ?*?@description ?*?@time?2019/7/13?18:09 ?*/ public?class?SingleLinked<E>?{ ????private?int?size; ????private?Node<E>?dummyHead; ????public?SingleLinked(){ ????????dummyHead?=?new?Node<>(); ????} ????private?class?Node<E>{ ????????private?Node?next; ????????private?E?element; ????????public?Node(){ ????????????this(null,?null); ????????} ????????public?Node(E?element,Node?next){ ????????????this.element?=?element; ????????????this.next?=?next; ????????} ????????@Override ????????public?String?toString(){ ????????????if?(element!=null){ ????????????????return?element.toString(); ????????????} ????????????return?null; ????????} ????} ????public?void?addFirst(E?e)?{ ????????dummyHead.next?=?new?Node<>(e,dummyHead.next); ????????size++; ????} ????//指定位置添加元素 ????public?void?add(E?e,?int?index)?{ ????????if?(index?<?0?||?index?>?size)?{ ????????????throw?new?IllegalArgumentException("index?is?illegal,add?failed"); ????????} ????????Node?head?=?dummyHead; ????????for?(int?i?=?0;?i?<?index;?i++)?{ ????????????head?=?head.next; ????????} ????????head.next?=?new?Node(e,head.next); ????????size++; ????} ????public?void?addLast(E?e){ ????????add(e,size); ????} ????//在指定位置刪除元素 ????public?E?remove(int?index){ ????????//System.out.println(dummyHead); ????????//存虛擬頭結(jié)點 ????????Node<E>?prev?=?dummyHead; ????????for?(int?i?=?0;?i?<?index;?i++)?{ ????????????prev?=?prev.next; ????????} ????????//將當前元素存入prev_temp臨時變量中 ????????Node<E>?prev_temp?=?prev.next; ????????//將當前元素的前一個節(jié)點的next指向當前元素的下一個節(jié)點; ????????prev.next?=?prev_temp.next; ????????//將當前元素的next設(shè)置為null等待虛擬機回收 ????????prev_temp.next?=?null; ????????size--; ????????return?prev_temp.element; ????} ????public?int?getSize()?{ ????????return?size; ????} ????public?boolean?isEmpty(){ ????????return?size?==?0; ????} ????@Override ????public?String?toString(){ ????????StringBuilder?sb?=?new?StringBuilder(); ????????for?(int?i?=?0;?i?<?size;?i++)?{ ????????????sb.append(dummyHead.next); ????????????sb.append(","); ????????????dummyHead?=?dummyHead.next; ????????} ????????return?sb.toString(); ????} }另外,要是換成雙向鏈表要加一個尾節(jié)點,還有要不要在Node類中加一個prev節(jié)點指向上一個呢,我看網(wǎng)上有的教程并沒有加這個prev,jdk源碼加了
查看完整描述

1 回答

已采納
?
cxxyjsj

TA貢獻119條經(jīng)驗 獲得超22個贊

調(diào)試時IDE自動計算變量引用導(dǎo)致的, prev == null 那么prev.next 肯定是空指針

查看完整回答
1 反對 回復(fù) 2019-07-13
  • 1 回答
  • 0 關(guān)注
  • 949 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號