题目描述:
给定一个树,按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。
示例:
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def increasingBST(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
#思路:将二叉树的每个节点的值按照中序进行保存,再将保存的结果构造一棵树
temp = []
if root == None:
return temp
def find_mid(tree,t):
if tree != None:
find_mid(tree.left,t)
t.append(tree.val)
find_mid(tree.right,t)
find_mid(root,temp)
res = TreeNode(0)
p = res
for i in range(len(temp)):
p.right = TreeNode(temp[i])
p = p.right
return res.right
菜鸟一枚,代码仅供参考,如有问题,望指正~