給定乙個樹,按中序遍歷重新排列樹,使樹中最左邊的結點現在是樹的根,並且每個結點沒有左子結點,只有乙個右子結點。
示例 :
輸入:[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,
6,null,
7,null,
8,null,9]
1 \2\
3\4\
5\6\
7\8\
9
這題也非常簡單,但是要注意的是插入的時候只有右節點,不需要向二叉搜尋樹一樣判斷大小.
public treenode increasingbst
(treenode root)
//再重新生成樹
treenode newroot = null;
for(treenode treenode : list)
return newroot;
}private
void
inorder
(treenode node, list
list)
inorder
(node.left,list)
; list.
add(node)
;inorder
(node.right,list);}
private treenode add
(treenode root,treenode node)
root.right =
add(root.right,node)
;return root;
}
897 遞增順序查詢樹
給定乙個樹,按中序遍歷重新排列樹,使樹中最左邊的結點現在是樹的根,並且每個結點沒有左子結點,只有乙個右子結點。示例 輸入 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,...
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...