
直接进行
中序遍历(左,根,右),按照中序遍历的顺序,依次加入到切片中,然后遍历这个切片去对比p即可:
func inorderSuccessor(root *TreeNode, p *TreeNode) *TreeNode {
ans:=make([]TreeNode,0)
ans = ldr(root,&ans)
for i := 0; i < len(ans)-1; i++ {
if ans[i].Val==p.Val {
return &ans[i+1]
}
}
return nil
}
func ldr(node *TreeNode,ans *[]TreeNode) []TreeNode {
if node==nil {
return nil
}
ldr(node.Left,ans)
*ans = append(*ans, *node)
ldr(node.Right,ans)
return *ans
}
提交结果:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)