题解 | #二叉搜索树与双向链表#
二叉搜索树与双向链表
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(pRootOfTree *TreeNode) dfs = func(pRootOfTree *TreeNode) { if pRootOfTree == nil { return } dfs(pRootOfTree.Left) if pre == nil { head = pRootOfTree pre = pRootOfTree } else { pRootOfTree.Left = pre pre.Right = pRootOfTree pre = pRootOfTree } dfs(pRootOfTree.Right) } dfs(pRootOfTree) return head }