编程练习题
keain
这个作者很懒,什么都没留下…
展开
-
编程练习题:快速排序
写了一个快速排序,各种采坑,写对不容易正确解法: 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 · 327 阅读 · 0 评论 -
编程练习题:找到二叉数中某两个节点的第一个共同祖先节点
找到二叉数中某两个节点的第一个共同祖先节点。这里给出了两种解法,分别是常规解法和递归解法。常规解法:首先从root开始,自上而下,找到p节点的所有祖先节点,然后依据从下往上的顺序,判断每一个p的祖先节点是不是q的祖先节点,如果是的话,那么就是第一个共同祖先节点,返回 //判断root是不是q的祖先节点 bool isancestor(TreeNode *root, TreeNode* q) { //root为NULL节点,终止递归,返回 if (root =原创 2020-05-18 18:27:18 · 550 阅读 · 0 评论 -
编程练习题:判断一个二叉树是不是一个二叉搜索树
编程练习题:判断一个二叉树是不是一个二叉搜索树解题思路:中序遍历二叉树,得到中序遍历序列,然后判断该序列是否是递增的序列,如果是,那就是二叉搜索树,否则就不是二叉搜索树。 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 · 763 阅读 · 0 评论