请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

扩展已有类型报错:panic: runtime error: invalid memory address or nil pointer dereference

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()
}

正在回答 回答被采纳积分+3

1回答

ccmouse 2021-02-09 14:40:54

这个问题可以看一下他报的是第几行,然后那边加个断点进行单步跟踪

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号