问题。二叉树数据结构TreeNode可以用来表示一个单向链表(左边为空,右边为下一个链表节点)。实现一种将二叉查找树转换为单向链表的方法,要求还是符合二叉查找树的性质,转换操作应该是原站,即直接修改原来的二分查找树。返回转换后的单向链表的头节点。注意:本题对原题略有修改示例:输入:[4,2,5,1,3,null,6,0]输出:[0,null,1,null,2,null,3,null,4,null,5,null,6]注意:节点数不会超过100000。思路DFS中序遍历代码Python3#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,x):#self.val=x#self.left=None#self.right=Noneclass解决方法:defconvertBiNode(self,root:TreeNode)->TreeNode:defdfs(root):pre=cur=rootifroot:ifroot.left:pre,cur=dfs(root.left)#左子树的下一个链表节点为当前根节点cur.right=root#修改当前指针cur=rootroot.left=Noneifroot.right:root.right,cur=dfs(root.right)returnpre,curreturndfs(root)[0]链接GitHub
