701 二叉搜尋樹中的插入操作

2021-10-10 20:08:41 字數 835 閱讀 5171

//二叉搜尋樹本身有序,因此無需遍歷整棵樹,插入位置根據當前節點和val的大小關係可以判斷出接下來往哪走

//通過遞迴函式返回值完成新加入節點的父子關係賦值操作,下一層將加入節點返回,本層用root->left或者root->right將其接住

treenode*

insertintobst

(treenode* root,

int val)

②直接在當前節點把它的孩子都判斷好(無需返回值)

class

solution

else

}public

: treenode*

insertintobst

(treenode* root,

int val)

};

//額外維護乙個parent,就像單鏈表一樣

class

solution

if(parent-

>val > val) parent-

>left =

newtreenode

(val)

;else parent-

>right =

newtreenode

(val)

;return root;}}

;

搜尋樹自帶順序,需要查詢某個位置時可以一條線找下去,無需整棵樹遍歷;

當需要與父節點產生聯絡時:遞迴函式有返回值:就只處理當前節點;無返回值:就提前把自己的孩子處理了

搜尋樹中兩節點之間的關係,常借助pre,parent

701 二叉搜尋樹中的插入操作

給定二叉搜尋樹 bst 的根節點和要插入樹中的值,將值插入二叉搜尋樹。返回插入後二叉搜尋樹的根節點。保證原始二叉搜尋樹中不存在新值。注意,可能存在多種有效的插入方式,只要樹在插入後仍保持為二叉搜尋樹即可。你可以返回任意有效的結果。例如,給定二叉搜尋樹 4 2 7 1 3 和 插入的值 5 你可以返回...

701 二叉搜尋樹中的插入操作

題目描述 給定二叉搜尋樹 bst 的根節點和要插入樹中的值,將值插入二叉搜尋樹。返回插入後二叉搜尋樹的根節點。輸入資料保證,新值和原始二叉搜尋樹中的任意節點值都不同。注意,可能存在多種有效的插入方式,只要樹在插入後仍保持為二叉搜尋樹即可。你可以返回任意有效的結果。例如,給定二叉搜尋樹 4 2 7 1...

701 二叉搜尋樹中的插入操作

二叉搜尋樹中的插入操作 給定二叉搜尋樹 bst 的根節點和要插入樹中的值,將值插入二叉搜尋樹。返回插入後二叉搜尋樹的根節點。輸入資料 保證 新值和原始二叉搜尋樹中的任意節點值都不同。注意,可能存在多種有效的插入方式,只要樹在插入後仍保持為二叉搜尋樹即可。你可以返回 任意有效的結果 示例 1 輸入 r...