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

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

如何更新go列表中的下一個指針?

如何更新go列表中的下一個指針?

Go
www說 2021-09-10 20:50:36
我有一個來自列表的節(jié)點指針。我想用列表中的下一個節(jié)點更新值和下一個指針。這只不過是就地刪除,只允許訪問該指針。例如 3 -> 5 -> 8 -> 9 要刪除的節(jié)點:5(只允許訪問 5 個。假設(shè)前一個節(jié)點未知)在這種情況下,節(jié)點 [8] 的值和下一個指針可以復(fù)制到節(jié)點 [5]。我有以下代碼。它不是刪除元素。如果我嘗試使用“next”關(guān)鍵字訪問下一個指針,則會引發(fā)錯誤。package mainimport (    "container/list"    "fmt")func main() {    l := list.New()    l.PushFront(4)    l.PushFront(5)    e4 := l.PushFront(7)    l.PushFront(6)    l.PushBack(9)    res := deleteNode(e4)    fmt.Println(res)    for e:=l.Front(); e!=nil;e=e.Next() {        fmt.Println(e.Value)    }}//ERRORfunc deleteNode(node *list.Element) bool {    if node == nil || node.Next() == nil {        return false    }    var nextNode *list.Element     nextNode := node.next.(*list.Element)    node.Value = node.Next().Value.(int)    nextNode = nextNode.next.(*Element)    return true}有人可以幫我解決這個問題嗎?
查看完整描述

1 回答

?
婷婷同學(xué)_

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

您得到的(第一個)錯誤是:

no new variables on left side of :=

因為nextNode已經(jīng)存在。問題在于這兩行:

var nextNode *list.Element 
nextNode := node.next.(*list.Element)

在第一行中創(chuàng)建變量nextNode。在第二行中,您使用短賦值:=來創(chuàng)建一個新變量(由左側(cè)指定)并為其分配右側(cè)的值。只需省略第一行,您只需要其中一個:

nextNode := node.Next()

此外,您無法讀取或更改next節(jié)點的指針,因為該next指針未在Element結(jié)構(gòu)中導(dǎo)出(以小寫字母開頭)。因此,您嘗試實現(xiàn)的目標(biāo)無法完成。但是您為此定義了一個函數(shù):Remove(e *Element) interface{}


查看完整回答
反對 回復(fù) 2021-09-10
  • 1 回答
  • 0 關(guān)注
  • 276 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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