- 博客(3)
- 收藏
- 关注
原创 编程练习题:快速排序
写了一个快速排序,各种采坑,写对不容易正确解法: void quicksort(vector<int>& nums, int begin, int end) { if (begin >= end) { return; } int i = begin; int j = end; //设置哨兵值 int pivot = nums[i]; wh
2020-05-19 16:41:13
358
原创 编程练习题:找到二叉数中某两个节点的第一个共同祖先节点
找到二叉数中某两个节点的第一个共同祖先节点。这里给出了两种解法,分别是常规解法和递归解法。常规解法:首先从root开始,自上而下,找到p节点的所有祖先节点,然后依据从下往上的顺序,判断每一个p的祖先节点是不是q的祖先节点,如果是的话,那么就是第一个共同祖先节点,返回 //判断root是不是q的祖先节点 bool isancestor(TreeNode *root, TreeNode* q) { //root为NULL节点,终止递归,返回 if (root =
2020-05-18 18:27:18
588
原创 编程练习题:判断一个二叉树是不是一个二叉搜索树
编程练习题:判断一个二叉树是不是一个二叉搜索树解题思路:中序遍历二叉树,得到中序遍历序列,然后判断该序列是否是递增的序列,如果是,那就是二叉搜索树,否则就不是二叉搜索树。 struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} };class Solution {public:
2020-05-15 16:41:27
806
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人