問題描述
給定二叉搜尋樹(bst)的根節點和要插入樹中的值,將值插入二叉搜尋樹。返回插入後二叉搜尋樹的根節點。輸入資料保證新值和原始二叉搜尋樹中的任意節點值都不同。
注意,可能存在多種有效的插入方式,只要樹在插入後仍保持為二叉搜尋樹即可。你可以返回任意有效的結果 。
示例 1:
輸入:root = [4,2,7,1,3], val = 5輸出:[4,2,7,1,3,5]
解釋:另乙個滿足題目要求可以通過的樹是:
示例 2:
輸入:示例 3:root = [40,20,60,10,30,50,70],
val = 25
輸出:
[40,20,60,10,30,50,70,null,null,25]
輸入:非遞迴方式解決這題說的是讓在二叉搜尋樹中插入乙個節點,最簡單的一種方式就是插入到葉子節點。二叉搜尋樹的特點是左子樹的值都小於當前節點,右子樹的值都大於當前節點,並且左右子樹都具有這個特性。所以我們需要用插入的值val和根節點比較,root =
[4,2,7,1,3,null,null,null,null,null,null]
val = 5
輸出:[4,2,7,1,3,5]
如果val大於根節點,說明值為val的節點應該插入到root節點的右子樹上
如果val小於根節點,說明值為val的節點應該插入到root節點的左子樹上
然後再繼續執行上面的操作,直到找到葉子節點為止,然後再把它插進去,就以題中示例為例畫個圖來看一下
**如下
遞迴方式解決遞迴的方式原理還和上面一樣,一直往下找,直到找到葉子節點為止,**如下public treenode insertintobst
(treenode root,
int val)
else
}else
else}}
}
問題分析做這題之前首先要弄懂什麼是二叉搜尋樹,然後才能進行後面的操作,最簡單的方式就是把值插入到二叉搜尋樹的葉子節點。public treenode insertintobst
(treenode root,
int val)
二叉搜尋樹中的插入操作 python
題目描述 給定二叉搜尋樹 bst 的根節點和要插入樹中的值,將值插入二叉搜尋樹。返回插入後二叉搜尋樹的根節點。保證原始二叉搜尋樹中不存在新值。注意,可能存在多種有效的插入方式,只要樹在插入後仍保持為二叉搜尋樹即可。你可以返回任意有效的結果。例如,你可以返回這個二叉搜尋樹 或者這個樹也是有效的 思路 ...
701 二叉搜尋樹中的插入操作
給定二叉搜尋樹 bst 的根節點和要插入樹中的值,將值插入二叉搜尋樹。返回插入後二叉搜尋樹的根節點。保證原始二叉搜尋樹中不存在新值。注意,可能存在多種有效的插入方式,只要樹在插入後仍保持為二叉搜尋樹即可。你可以返回任意有效的結果。例如,給定二叉搜尋樹 4 2 7 1 3 和 插入的值 5 你可以返回...
701 二叉搜尋樹中的插入操作
題目描述 給定二叉搜尋樹 bst 的根節點和要插入樹中的值,將值插入二叉搜尋樹。返回插入後二叉搜尋樹的根節點。輸入資料保證,新值和原始二叉搜尋樹中的任意節點值都不同。注意,可能存在多種有效的插入方式,只要樹在插入後仍保持為二叉搜尋樹即可。你可以返回任意有效的結果。例如,給定二叉搜尋樹 4 2 7 1...