給定乙個樹,按中序遍歷重新排列樹,使樹中最左邊的結點現在是樹的根,並且每個結點沒有左子結點,只有乙個右子結點。示例 :
輸入:[5,3,6,2,4,null,8,1,null,null,null,7,9]
5/ \
3 6
/ \ \
2 4 8
/ / \
1 7 9
輸出:[1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]1\
2\3\
4\5\
6\7\
8\9 原地修改,中序遍歷的時候用乙個變數儲存上乙個節點的資訊
# 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
"""def inorder(t):
if not t:
return
inorder(t.left)
t.left = none
self.cur.right = t
self.cur = t
inorder(t.right)
res = self.cur = treenode(none)
inorder(root)
return res.right
897 遞增順序查詢樹
給定乙個樹,按中序遍歷重新排列樹,使樹中最左邊的結點現在是樹的根,並且每個結點沒有左子結點,只有乙個右子結點。示例 輸入 5,3,6,2,4,null,8,1,null,null,null,7,9 5 36 248 17 9輸出 1,null,2,null,3,null,4,null,5,null,...
897 遞增順序查詢樹
很簡單的一道題目,兩種方法,第一種需要額外空間來儲存結點中的值,然後按照儲存順序生成一顆新的樹 class solution def increasingbst self,root treenode treenode 中序遍歷二叉樹,獲得節點的值,然後生成新的樹tree l self.helper ...
C Leetcode897 遞增順序查詢樹
題目思路 1 暴力解法。中序遍歷二叉樹,將值逐個存入乙個動態陣列 然後遍歷陣列,建乙個新的樹。實現方法 一 暴力解法 definition for a binary tree node.struct treenode class solution return p void increasingbs...