每日一题(2022-05-16)——后继者

每日一题(2022-05-16)——后继者,第1张

目录 面试题 04.06. 后继者题目描述:题解:提交结果:

面试题 04.06. 后继者 题目描述:


题解:

直接进行中序遍历(左,根,右),按照中序遍历的顺序,依次加入到切片中,然后遍历这个切片去对比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
}
提交结果:

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1294722.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-10
下一篇2022-06-10

发表评论

登录后才能评论

评论列表(0条)

    保存