Open yankewei opened 3 years ago
很明显就是DFS的题目,中序遍历就是,先左,再中间,然后右边。
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func increasingBST(root *TreeNode) *TreeNode {
ret := &TreeNode{}
dummy := ret
var dfs func(r *TreeNode)
dfs = func (r *TreeNode) {
if r == nil {
return
}
dfs(r.Left)
ret.Right = r
r.Left = nil
ret = ret.Right
dfs(r.Right)
}
dfs(root)
return dummy.Right
}
给你一棵二叉搜索树,请你 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。
示例 1:
示例 2:
提示:
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/increasing-order-search-tree 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。