扩展已有类型报错:panic: runtime error: invalid memory address or nil pointer dereference
来源:4-3 扩展已有类型

慕粉4124437
2021-02-08
go version
go version go1.13.4 darwin/amd64
//entry.go
package main
import (
“fmt”
“learngo/tree”
)
type myTreeNode struct {
*tree.Node
}
func (myNode *myTreeNode) postOrder() {
if myNode == nil && myNode.Node == nil {
return
}
left := myTreeNode{myNode.Left}
right := myTreeNode{myNode.Right}
left.postOrder()
right.postOrder()
myNode.Print()
}
func main() {
root := myTreeNode{&tree.Node{Value: 3}}
root.Left = &tree.Node{}
root.Right = &tree.Node{Value: 5}
root.Right.Left = &tree.Node{Value: 5}
root.Left.Right = &tree.Node{Value: 5}
root.Traverse()
fmt.Println()
root.postOrder()
}
//node.go
package tree
import “fmt”
type Node struct {
Value int
Left, Right *Node
}
func Created(value int) *Node {
return &Node{Value: value}
}
func (node *Node) Updated(value int) {
node.Value = value
}
func (node *Node) Print() {
fmt.Println(node.Value)
}
func (node *Node) Traverse() {
if node == nil {
return
}
node.Left.Traverse()
node.Print()
node.Right.Traverse()
}
1回答
-
ccmouse
2021-02-09
这个问题可以看一下他报的是第几行,然后那边加个断点进行单步跟踪
00
相似问题