题目
文章平均质量分 84
进击的小C
向上是为了不沉下去.
展开
-
LeetCode-二叉树OJ题
965. 单值二叉树先判断这棵树是否为空,如果是空树则是true。再判断左子树是否为空,并且左子树的值val和当前节点的val不相同,如果这左子树不为空且val不等于root的val则返回false,再使用相同方式判断右子树。最后递归一下左右子树即可,只有左右子树有一个返回false,则整体返回false。原创 2023-12-05 17:32:35 · 1485 阅读 · 52 评论 -
Leetcode-二叉树oj题
144. 二叉树的前序遍历这个题目在遍历的基础上还要求返回数组,数组里面按前序存放二叉树节点的值。既然要返回数组,就必然要malloc一块空间,那么我们需要算出这个二叉树的节点个数,所以就创建一个函数TreeSize求出节点个数。TreeSize的实现在上篇文章有提到所以在preorderTraversal里面创建一个变量n来接收TreeSize的返回值,再为变量amalloc一块空间,空间大小是n个int。原创 2023-12-01 19:14:20 · 1473 阅读 · 85 评论 -
手把手教你实现一个循环队列(C语言)
int K;int* a;int front;int rear;原创 2023-11-26 16:17:56 · 459 阅读 · 43 评论 -
你知道如何使用队列实现栈吗?(C语言)
题目要求是使用两个队列实现栈,那么就直接在栈的定义里面包含两个队列即可。Que q1;Que q2;} MyStack;原创 2023-11-25 16:08:44 · 406 阅读 · 17 评论 -
leetcode-链表经典题
206. 反转链表这里我们使用创建一个变量cur来遍历原链表,再创建一个新节点newnode,首先使用一个循环来遍历原链表,cur为NULL是循环结束,每次进入循环将cur的下一个节点赋给tail,然后将cur取下来头插,第一次头插的节点的next置为NULL,也就是cur->next=newnode,然后将cur这个节点赋给newnode,在新链表上相当于往左走一步,newnode=cur,然后cur在旧链表上往右走,cur=tail。原创 2023-11-12 21:46:50 · 1661 阅读 · 79 评论 -
leetcode-经典面/笔试题目
还是0。除了消失的数字出现一次,其他的数字都是成对出现,所以tail结果两次遍历异或后就是消失的那个数字。原创 2023-11-05 17:55:52 · 1244 阅读 · 85 评论 -
分支语句与循环语句(2)
sizeof(arr)是数组的总大小,sizeof(arr[0])是每个元素的大小,相除得到的就是元素个数,left是下标为0的元素,right是最后的一个元素,mid是中间的元素,如果midk,那么我们要找的这个元素肯定在mid左边,这时我们将mid-1这个元素的下标赋给right。3、设计游戏具体思路,使系统生成一个随机数,让玩家输入一个数字,然后两个数字对比,根据系统反馈信息,逐渐锁定目标。原创 2023-08-13 15:52:10 · 445 阅读 · 24 评论 -
写题思路的分享
2.在每次进行区间拆半操作时,即对[left,right]进行拆半,中位元素arr[mid]已经搜索完毕,使得下次搜索区间仍然为左闭右闭区间,则左半区间为[left,mid-1],右半区间为[mid+1,right]。所以right=mid-1。1.right的初始化取值为序列的长度-1,则初始化判断区间为[0,len-1],左闭右闭区间,后续判断区间为[left,right]。5、循环结束后,输出最终的结果,也就是我们需要的10个数中的最大值。2、查找目标值的左边界,若序列所有元素大于目标值,返回-1。原创 2023-07-27 18:56:52 · 133 阅读 · 4 评论