897 遞增順序查詢樹

2021-10-03 04:53:42 字數 1016 閱讀 2385

給定乙個樹,按中序遍歷重新排列樹,使樹中最左邊的結點現在是樹的根,並且每個結點沒有左子結點,只有乙個右子結點。

示例 :

輸入:[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...