求教,以基础树结构(二叉搜索树)为例:
type TreeNode struct{
Val int
Left *TreeNode
Right *TreeNode
}
已经基于这种结构写了 Max()和 Min()方法,例如:
func (n *TreeNode) Max(){}
如果想要把基础树结构扩展到红黑树 RBTNode ,相当于基础树结构 TreeNode 多加了 Color 字段:
type RBTNode struct{
Color int // 新加的字段
Val int
Left *RBTNode
Right *RBTNode
}
如果想对 RBTNode 调用与扩展属性无关的方法,例如 Max(),只能通过重写一份相似代码的形式来实现吗?例如:
func (n *RBTNode) Max(){}
// 备注:之前想过派生,但很明显是不可行的。。