我正在尝试使用递归函数创建一个线性链表,但由于某种原因,我没有得到正确的结果。
当我向列表中添加一个数字时,我注意到L.head该方法返回后从未更新过recursiveAdd。鉴于它是一个指针,不应该更新它吗?
之后的预期结果list.Display():1 2 3
实际结果:空字符串
package main
import "fmt"
type Node struct {
num int
next *Node
}
type List struct {
head *Node
}
func (L *List) Add(n int) {
L.recursiveAdd(L.head, n)
}
func recursiveAdd(node *Node, n int){
if node == nil {
node = &Node{n, nil}
return
}
L.recursiveAdd(node.next, n)
}
func (L *List) Display() {
recursiveDisplay(L.head)
}
func recursiveDisplay(n *Node){
if n == nil {
return
}
fmt.Println(n.num)
recursiveDisplay(n.next)
}
func main(){
list := List{}
list.Add(1)
list.Add(2)
list.Add(3)
list.Display()
}
德玛西亚99
相关分类