日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 450. 删除二叉搜索树中的节点

發布時間:2024/7/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 450. 删除二叉搜索树中的节点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考 二叉搜索樹刪除操作

  • 要刪除節點有2子節點,找到右子樹中最小的節點,將其val值覆蓋要刪除的節點值,再刪除這個最小節點
  • 要刪除的節點的子節點為1個或0個,直接將要刪除的節點的父節點指向子的子節點
class Solution { public:TreeNode* deleteNode(TreeNode* root, int key) {TreeNode *parent = NULL, *cur = root;while(cur && cur->val != key){parent = cur;if(cur->val < key)cur = cur->right;elsecur = cur->left;}if(cur == NULL)return root;if(cur->left != NULL && cur->right != NULL){//要刪除的節點有2個子節點,找到右子樹最小的換上去,在刪除TreeNode *minP = cur->right, *minPfather = cur;while(minP->left){minPfather = minP;minP = minP->left;}cur->val = minP->val;cur = minP;//要刪除的curparent = minPfather;}//要刪除的節點有1個或0個子節點TreeNode *child;if(cur->left)child = cur->left;else if(cur->right)child = cur->right;elsechild = NULL;if(parent == NULL)//要刪的是根節點root = child;else if(cur == parent->left)parent->left = child;elseparent->right = child;return root;} };

總結

以上是生活随笔為你收集整理的LeetCode 450. 删除二叉搜索树中的节点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。