用於從一個連結串列中刪除最後一個節點的 Go 語言程式。


示例

解決此問題的步驟 -

步驟 1 - 定義一個接受連結串列頭部的函式。

步驟 2 - 如果頭 == nil,返回頭部。

步驟 3 - 轉到下一個節點並返回更新後的頭部。

示例

 線上演示

package main
import (
   "fmt"
)
type Node struct {
   value int
   next *Node
}
func NewNode(value int, next *Node) *Node{
   var n Node
   n.value = value
   n.next = next
   return &n
}
func TraverseLinkedList(head *Node){
   temp := head
   for temp != nil {
      fmt.Printf("%d ", temp.value)
      temp = temp.next
   }
   fmt.Println()
}
func DeleteLastNode(head *Node) *Node{
   if head == nil{
      return head
   }
   temp := head
   for temp.next.next != nil{
      temp = temp.next
   }
   temp.next = nil
   return head
}
func main(){
   head := NewNode(30, NewNode(10, NewNode(40, NewNode(40, nil))))
   fmt.Printf("Input Linked list is: ")
   TraverseLinkedList(head)
   head = DeleteLastNode(head)
   fmt.Printf("After deleting last node of the linked list: ")
   TraverseLinkedList(head)
}

輸出

Input Linked list is: 30 10 40 40
After deleting last node of the linked list: 30 10 40

更新日期:2021 年 3 月 18 日

353 次瀏覽

啟動你的職業

完成學習即可獲得認證

開始學習
廣告
© . All rights reserved.