您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關go語言刪除鏈表節點的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
go語言刪除鏈表節點的方法:首先將下一個節點的值移動到當前刪除節點;然后更改當前節點的Next即可,如【node.Next = node.Next.Next】。
具體方法:
最優解:
把下一個節點的值移動到當前刪除節點,然后更改當前節點的Next
node.Val = node.Next.Val node.Next = node.Next.Next
其他方法:
p.next = p.next.next即可達到刪除的目的
/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func deleteNode(head *ListNode, val int) *ListNode { if head.Val == val{ return head.Next } pre:=head for head.Next.Val != val{ head = head.Next } head.Next = head.Next.Next return pre }
題目:
刪除鏈表中的節點
請編寫一個函數,使其可以刪除某個鏈表中給定的(非末尾)節點,你將只被給定要求被刪除的節點。
現有一個鏈表 – head = [4,5,1,9],它可以表示為:
示例 1:
輸入: head = [4,5,1,9], node = 5
輸出: [4,1,9]
解釋: 給定你鏈表中值為 5 的第二個節點,那么在調用了你的函數之后,該鏈表應變為 4 -> 1 -> 9.
示例 2:
輸入: head = [4,5,1,9], node = 1
輸出: [4,5,9]
解釋: 給定你鏈表中值為 1 的第三個節點,那么在調用了你的函數之后,該鏈表應變為 4 -> 5 -> 9.
Code
依然注意,是達到刪除的目的
/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func deleteNode(node *ListNode) { for node.Next.Next != nil { node.Val = node.Next.Val node = node.Next } node.Val = node.Next.Val node.Next = nil }
關于“go語言刪除鏈表節點的方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。