数据结构精题
数据结构精题
原来45
阿里云专家博主,技术栈有C,C++,Go,dart,数据结构与算法,Linux系统编程,Linux网络编程,MySQL数据库等(gin,gorm,qt,python,flutter)。
想多了,都是问题。
做多了,都是答案。
展开
-
leetcode27移除元素.leetcode189轮转数组《C进阶百练N12》
leetcode 27int removeElement(int* nums, int numsSize, int val){ int pre=0; int cur=0; while(cur<numsSize) { if(nums[cur]!=val) { nums[pre]=nums[cur]; cur++; pre++; } ...原创 2022-03-19 21:39:21 · 401 阅读 · 4 评论 -
二叉树的中序遍历.leetcode94《数据结构入门到精通N16》
温馨提示:作者的刷题笔记只是作者认为比较好的题,供复习用哈,所以可能比较水哈,主要还是作者太懒了。94. 二叉树的中序遍历 - 力扣(LeetCode) (leetcode-cn.com)创建子函数是因为避免重复开辟数组,然后子函数用于递归。/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * ...原创 2022-04-25 15:51:10 · 531 阅读 · 11 评论 -
分治算法,二叉树例题《数据结构入门到精通N13-N15》
目录分治算法例一:相同的树例二:单值二叉树例三:二叉树的最大深度作者新建立的社区:非科班转码社区-CSDN社区云💖💛💙期待hxd的支持哈🎉 🎉 🎉分治算法思想思想就是大问题分成相同问题的子问题。分治就是递归。分治法在每一层递归上都有三个步骤: step1 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题; step2 解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题 step3 合并:将各...原创 2022-04-15 05:30:00 · 880 阅读 · 38 评论 -
设计循环队列.leetcode622《数据结构入门到精通N12》
目录题目链接题目简介思路作者新建立的社区:非科班转码社区-CSDN社区云💖💛💙期待hxd的支持哈🎉 🎉 🎉题目链接622. 设计循环队列 - 力扣(LeetCode) (leetcode-cn.com)题目简介思路开一个数组,空间为k+1(留空)(因为如果不给k+1个空间,当front==tail会让人疑惑到底是为0个数据,还是数据满了,给了之后为0就是相等,满了会隔一个空间),然后转。// #define _CRT_SECURE_N.原创 2022-04-01 18:54:18 · 567 阅读 · 8 评论 -
复制带随机指针的链表.leetcode138《数据结构入门到精通N11》
目录题目链接题目简介思路作者新建立的社区:非科班转码社区-CSDN社区云💖💛💙期待hxd的支持哈🎉 🎉 🎉题目链接138. 复制带随机指针的链表 - 力扣(LeetCode) (leetcode-cn.com)题目简介思路先连要复制的点在原链表上,再把random正确链接,再解除与原链表的连接并还原原链表。/** * Definition for a Node. * struct Node { * int val...原创 2022-04-01 18:35:47 · 976 阅读 · 5 评论 -
用栈实现队列.leetcode232 《数据结构入门到精通N10》
目录题目链接题目简介思路代码作者新建立的社区:非科班转码社区-CSDN社区云💖💛💙期待hxd的支持哈🎉 🎉 🎉题目链接232. 用栈实现队列 - 力扣(LeetCode) (leetcode-cn.com)题目简介思路//还是两个栈互相倒//思路:当要入数据的时候就往s1入,出的时候,就从s2出,如果s2没有数据,就要去往s1拿//一定要是s2没有数据的时候才往s1拿。当拿的时候发现s2没有数据,再一次性全部把s1的//数据.原创 2022-03-29 20:00:00 · 612 阅读 · 3 评论 -
用队列实现栈.leetcode225 《数据结构入门到精通N9》
目录题目链接题目描述思路代码作者新建立的社区:非科班转码社区-CSDN社区云💖💛💙期待hxd的支持哈🎉 🎉 🎉题目链接225. 用队列实现栈 - 力扣(LeetCode) (leetcode-cn.com)题目描述思路//栈是后进先出队列是先进后出//用两个队列来回倒//思路:把数据入到一个有数据的队列,出的时候把前n-1个数据倒到另一个队列//然后留下来的数据再出出去就可以了,就这样一直来回倒。代码...原创 2022-03-29 18:00:00 · 860 阅读 · 2 评论 -
有效的括号.leetcode20 《数据结构入门到精通N8》
目录题目链接题目描述思路代码作者新建立的社区:非科班转码社区-CSDN社区云💖💛💙期待hxd的支持哈🎉 🎉 🎉题目链接20. 有效的括号 - 力扣(LeetCode) (leetcode-cn.com)题目描述思路用栈来解决这个问题。当为左括号时,入栈,为右括号时出栈,同时注意括号的个数是否匹配,如左括号多余右括号,或者右括号多余左括号的情况。(注意因为是用c语言来实现,所以我们还要单独来实现一个栈)代码#include &..原创 2022-03-27 11:53:59 · 1702 阅读 · 21 评论 -
合并两个链表.leetcode21 《数据结构入门到精通N7》
作者新建立的社区:https://bbs.csdn.net/forums/FKBZM?typeId=22226💖💛💙期待hxd的支持哈🎉 🎉 🎉https://leetcode-cn.com/problems/merge-two-sorted-lists/思路(如下图):谁小放谁前面,但是记得用next保存下一个位置。struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list...原创 2022-03-22 20:31:11 · 462 阅读 · 0 评论 -
链表中倒数第k个结点(牛客)《数据结构入门到精通N6》
作者新建立的社区:https://bbs.csdn.net/forums/FKBZM?typeId=22226💖💛💙期待hxd的支持哈🎉 🎉 🎉https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?tpId=13&&tqId=11167&rp=2&ru=/activity/oj&qru=/ta/coding-interviews/question-ranking思路:.原创 2022-03-22 20:32:42 · 342 阅读 · 4 评论 -
链表的中间节点.leetcode876 《数据结构入门到精通N5》
作者新建立的社区:https://bbs.csdn.net/forums/FKBZM?typeId=22226💖💛💙期待hxd的支持哈🎉 🎉 🎉https://leetcode-cn.com/problems/middle-of-the-linked-list/思路:直接快慢指针,慢指针走一步,快指针走两步(注意基偶)。struct ListNode* middleNode(struct ListNode* head){ struct ListNode* slow=h..原创 2022-03-22 20:13:09 · 687 阅读 · 2 评论 -
CM11 链表分割(牛客)OR36 链表的回文结构(牛客)《数据结构入门到精通N3 N4》
作者新建立的社区:https://bbs.csdn.net/forums/FKBZM?typeId=22226💖💛💙期待hxd的支持哈🎉 🎉 🎉注意:数据结构画图和调试非常重要CM11 链表分割https://www.nowcoder.com/practice/0e27e0b064de4eacac178676ef9c9d70?tpId=8&&tqId=11004&rp=2&ru=/activity/oj&qru=/ta/cracking-the.原创 2022-03-22 20:08:20 · 485 阅读 · 1 评论 -
反转链表.leetcode206 《数据结构入门到精通N2》
目录题目思路代码作者新建立的社区:https://bbs.csdn.net/forums/FKBZM?typeId=22226💖💛💙期待hxd的支持哈🎉 🎉 🎉题目思路反转指向,头变尾,保存下一个地址,然后一直迭代,同时更新头。代码struct ListNode* reverseList(struct ListNode* head){ if(head==NULL)//0ge return NULL; if(head->..原创 2022-03-19 21:49:55 · 536 阅读 · 14 评论 -
移除链表元素.leetcode203 《数据结构入门到精通N1》
目录题目思路代码作者新建立的社区:https://bbs.csdn.net/forums/FKBZM?typeId=22226💖💛💙期待hxd的支持哈🎉 🎉 🎉题目思路用prev,cur,next分别保存前一个节点,要删除节点,和后一个节点,然后free cur,让prev指向next。代码struct ListNode* removeElements(struct ListNode* head, int val){ if(head==NULL)原创 2022-03-19 21:32:12 · 276 阅读 · 2 评论