![](https://img-blog.csdnimg.cn/20200503002548940.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
常见的数据结构
Mk_kkkk
我希望沐浴阳光,永无休止的漫步、憩息、旅游、冒险,最后浪迹天涯。
展开
-
合并两个排序的链表
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解法1:循环,谁小连接谁,谁向后跑,总会有有一个链表先跑完,while循环直到有一个链表走到头,循环结束判断哪个链表有剩余,将剩余链表进行连接,注意特殊输入NULL以及不要丢失合并后链表的头(所以要定义两个指针,一个指针指向合并后的头,保持不动,最后返回;一个作为向前跑的指针,进行合并)。ListN原创 2017-04-16 20:26:24 · 305 阅读 · 0 评论 -
翻转吧!字符串!(字符串翻转、左旋字符串)
题目1:输入一个英文句子,翻转句子中单词的顺序,但单词内部的顺序不可改变。例如 I am a student. 翻转后变为 student. a am I经典解法:两步翻转,先整体翻转,再以空格为分隔,部分翻转。所以需要一个翻转函数。翻转函数:void Reverse(string::iterator begin,string::iterator end) {原创 2017-04-13 21:46:36 · 328 阅读 · 0 评论 -
二叉树(重建、层序、深度、平衡二叉树)
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */1.重建二叉树原创 2017-04-13 18:53:34 · 414 阅读 · 0 评论 -
和为S的两个数、和为S的连续正数序列
题1:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。解法1:双层循环,从前向后扫描,简单好想,时间复杂度为O(n^2)//时间复杂度为O(n^2) vector FindNumbersWithSum(vector array,int sum) { vector vec;原创 2017-04-13 20:45:32 · 493 阅读 · 0 评论