//二叉搜尋樹本身有序,因此無需遍歷整棵樹,插入位置根據當前節點和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...