1 回答

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
在第一個(gè)中,您將列表作為輸入傳遞,在第二個(gè)中,您將引用您的頭節(jié)點(diǎn),如果您在第一個(gè)示例中注意到,如果數(shù)據(jù)存在于第一個(gè)節(jié)點(diǎn),您正在修改列表的頭。這是執(zhí)行此操作的代碼片段。
Node curr=list.head,prev=list.head;
if(curr.data==x&&curr!=null){
list.head=curr.next;
return ;
}
但是在您的第二個(gè)示例中,如果在第一個(gè)節(jié)點(diǎn)找到數(shù)據(jù),那么您將分配curr.next給方法本地的 head 變量,因此列表的 head 值保持不變,當(dāng)您再次嘗試在 main 方法中打印列表時(shí),它顯示舊的 head。這是第二個(gè)示例的代碼片段
Node curr=head,prev=head;
if(curr.data==x&&curr!=null){
head=curr.next;
return ;
}
因此,如果您將頭指針存儲(chǔ)在 LinkedList 對(duì)象中,那么您必須修改其中的值。
添加回答
舉報(bào)