每日一题——后继者

简介: 每日一题——后继者

面试题 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
}

提交结果:

相关文章
|
1月前
【LeetCode-每日一题】移动零
【LeetCode-每日一题】移动零
26 1
|
5月前
|
Python
每日一题 1447. 最简分数
每日一题 1447. 最简分数
|
6月前
每日一题——移动零
每日一题——移动零
|
11月前
|
算法 C语言 索引
每日一题:LeetCode-283. 移动零
每日一题:LeetCode-283. 移动零
【LeetCode】每日一题(2)
【LeetCode】每日一题(2)
65 0
|
算法
【LeetCode】每日一题(1)
【LeetCode】每日一题(1)
67 0
每日一题:Leetcode283 移动零
每日一题:Leetcode283 移动零
|
人工智能 算法 物联网
每日一题(day1)
每日一题(day1)
175 2
每日一题(day1)
|
人工智能 算法 物联网
每日一题(day3)
每日一题(day3)
149 1
每日一题(day3)