recover the tree without changing its structure.
note:
a solution using o(n ) space is pretty straight forward. could you devise a constant space solution?
confused what""means?
package niuke.day1;
public class recover_binary_search_tree1
public void recovertree(treenode root)
//若想到了中須遍歷二叉搜尋樹,相當於乙個遞增的數列,換了兩個位置,換位置位置發現不同,會對程式設計有大大的幫助
private void dfs(treenode root) else
}pre = root; //然後把root傳遞給pre,保證了pre是中序遍歷中root的前乙個元素,則好進行下乙個對比
dfs(root.right);}}
合併兩個二叉樹
給定兩個二叉樹,想象當你將它們中的乙個覆蓋到另乙個上時,兩個二叉樹的一些節點便會重疊。你需要將他們合併為乙個新的二叉樹。合併的規則是如果兩個節點重疊,那麼將他們的值相加作為節點合併後的新值,否則不為 null 的節點將直接作為新二叉樹的節點。示例 1 輸入 tree 1 tree 2 1 2 3 2...
二叉樹問題 尋找搜尋二叉樹中兩個錯誤的節點
題目 一棵二叉樹原本是搜尋二叉樹,但是其中有兩個節點調換了位置,使得這棵二叉樹不再是搜尋二叉樹,請找出這兩個錯誤的節點並返回。已知二叉樹中所有節點的值都不一樣,給定二叉樹的頭節點,返回乙個長度為2的二叉樹節點型別的陣列errs。def gettwoerrornode root errs none f...
B 二叉排序樹(比較兩個二叉排序樹)
description 二叉排序樹的定義是 或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 它的左 右子樹也分別為二叉排序樹。今天我們要判斷兩序列是否為同一二叉排序樹 input ...