471,二叉搜尋樹中的插入操作

2021-10-10 07:48:29 字數 1892 閱讀 9554

問題描述

給定二叉搜尋樹(bst)的根節點和要插入樹中的值,將值插入二叉搜尋樹。返回插入後二叉搜尋樹的根節點。輸入資料保證新值和原始二叉搜尋樹中的任意節點值都不同。

注意,可能存在多種有效的插入方式,只要樹在插入後仍保持為二叉搜尋樹即可。你可以返回任意有效的結果 。

示例 1:

輸入:root = [4,2,7,1,3], val = 5

輸出:[4,2,7,1,3,5]

解釋:另乙個滿足題目要求可以通過的樹是:

示例 2:

輸入

root = [40,20,60,10,30,50,70],

val = 25

輸出

[40,20,60,10,30,50,70,null,null,25]

示例 3:

輸入

root =

[4,2,7,1,3,null,null,null,null,null,null]

val = 5

輸出:[4,2,7,1,3,5]

非遞迴方式解決這題說的是讓在二叉搜尋樹中插入乙個節點,最簡單的一種方式就是插入到葉子節點。二叉搜尋樹的特點是左子樹的值都小於當前節點,右子樹的值都大於當前節點,並且左右子樹都具有這個特性。所以我們需要用插入的值val和根節點比較,

如果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...