leetcode- Add to List 669. Trim a Binary Search Tree
2017-10-13 15:14
429 查看
考察点:二叉树, 递归;
思路:如果root的val比L还要小,就应该trim掉root左边的枝,所以返回对root右边的递归;如果root的val比R还要大,返回对root左边的递归;如果root的val在[L, R]中间, 就分别对root的left和right赋值。这个思想很巧妙,不好想。
C++代码:
思路:如果root的val比L还要小,就应该trim掉root左边的枝,所以返回对root右边的递归;如果root的val比R还要大,返回对root左边的递归;如果root的val在[L, R]中间, 就分别对root的left和right赋值。这个思想很巧妙,不好想。
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: TreeNode* trimBST(TreeNode* root, int L, int R) { if (root == NULL) return root; if (root->val < L) return trimBST(root->right, L, R); if (root->val > R) return trimBST(root->left, L, R); root->left = trimBST(root->left, L, R); root->right = trimBST(root->right, L, R); return root; } };
相关文章推荐
- Leetcode--Add to List 215. Kth Largest Element in an Array
- LeetCode-Add to List 71. Simplify Path
- LeetCode 25 Reverse Nodes in k-Group Add to List (划分list为k组)
- 【LeetCode】Add to List 637. Average of Levels in Binary Tree
- 【LeetCode24】. Swap Nodes in Pairs Add to List
- leetCode_Add to List 206. Reverse Linked List
- [leetcode] Add to List 169. Majority Element
- LeetCode- Add to List 84. Largest Rectangle in Histogram
- LeetCode - Add to List 557. Reverse Words in a String III
- leetcode- Add to List 458. Poor Pigs
- Leetcode--Add to List 201. Bitwise AND of Numbers Range
- Leetcode--Add to List 371. Sum of Two Integers
- leetcode 21. Merge Two Sorted Lists Add to List
- leetcode 500 Keyboard Row Add to List
- 【LeetCode】Add to List 606. Construct String from Binary Tree
- [leetcode] 64. Minimum Path Sum Add to List
- [leetcode]500.Keyboard Row Add to List
- [leetcode] Add to List 403. Frog Jump
- [Leetcode] 2.Add Two Numbers(List To Long,模拟)
- LeetCode 143 Reorder List Add to List