leetcode-450.delete a node in a BST
2017-09-27 14:30
369 查看
考察点:二叉树
思路:递归删除,有两种删法;
C++ 代码:
思路:递归删除,有两种删法;
C++ 代码:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: void r_to_l(TreeNode* right, TreeNode* left) { TreeNode* temp = left->right; TreeNode * pre = left; while (temp) { pre = temp; temp = temp->right; } pre->right = right; } TreeNode* deleteNode(TreeNode* root, int key) { if (root == NULL) { return root; } if (root->val == key) { if (root->left) { TreeNode * temp = root->right; root = root->left; r_to_l(temp, root); return root; } else { return root->right; } } if (root->val > key) { root->left = deleteNode(root->left, key); return root; } else if (root->val < key) { root->right = deleteNode(root->right, key); } return root; } };
相关文章推荐
- LeetCode 450. Delete Node in a BST
- [leetcode]450. Delete Node in a BST
- leetcode 450. Delete Node in a BST
- [LeetCode]450. Delete Node in a BST
- [leetCode刷题笔记]450. Delete Node in a BST
- LeetCode 450. Delete Node in a BST
- LeetCode 450. Delete Node in a BST
- Leetcode-450. Delete Node in a BST
- LeetCode 450.Delete Node in a BST
- leetcode 450. Delete Node in a BST
- LeetCode 450. Delete Node in a BST
- 【LeetCode】 450. Delete Node in a BST
- Leetcode 450. Delete Node in a BST (Medium) (cpp)
- LeetCode "450. Delete Node in a BST"
- 【二叉搜索树:删除指定结点】leetcode 450. Delete Node in a BST
- Leetcode: Delete Node in a BST
- 450. Delete Node in a BST**
- 450. Delete Node in a BST
- [hard]450. Delete Node in a BST
- 450. Delete Node in a BST