题解 | #二叉搜索树与双向链表#
二叉搜索树与双向链表
https://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5
package main
import . "nc_tools"
/*
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
/**
*
* @param pRootOfTree TreeNode类
* @return TreeNode类
*/
func Convert( pRootOfTree *TreeNode ) *TreeNode {
// write code here
if pRootOfTree == nil {
return nil
}
var head, pre *TreeNode
var dfs func(*TreeNode)
dfs = func(root *TreeNode) {
if root == nil {
return
}
dfs(root.Left)
if pre == nil {
head = root
pre = root
} else {
pre.Right = root
root.Left = pre
pre = root
}
dfs(root.Right)
}
dfs(pRootOfTree)
return head
}