![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
weixin_34873452
这个作者很懒,什么都没留下…
展开
-
链表是否有环
快慢指针 慢指针移动一步 快指针移动两步 如果有环:快慢指针会相遇 如果没有环:快指针会指向NULL 循环条件:(快指针指向NULL,或者快指针的下个指向NULL.....因为有quickPtr->next,,所以后后面的判断,同时如果quickPtr->next为空,说明quickPtr一定可以指向NULL的) while(quickPtr!=NULL && quickPtr->next!=NULL) /** * Definition for ..原创 2020-09-03 22:33:17 · 121 阅读 · 0 评论 -
链表逆序
class Solution { public: ListNode* reverseList(ListNode* head) { ListNode* nextNode = NULL; ListNode* oldNode = head; ListNode* newNode = NULL; while (oldNode != NULL) { nextNode = oldNode->n...原创 2020-09-03 21:13:02 · 109 阅读 · 0 评论 -
三种排序算法,冒泡 选择 快速排序
#include<iostream> using namespace std; template<class T> void mySwap(T& a, T& b) { T temp = a; a = b; b = temp; } //冒泡 void BubbleSort(int arr[], int length) { for (size_t i =0; i < length; i++) { for (size_t j = 0; j &l.原创 2020-09-03 10:42:20 · 80 阅读 · 0 评论 -
epoll
原创 2020-08-08 10:02:24 · 71 阅读 · 0 评论 -
两个链表的第一个公共节点
问题描述 输入两个链表,找出它们的第一个公共结点。 含有公共节点的两个链表的结构类似于下图中的链表: 可以看到两个链表中有一个公共节点,其中橙色的节点就是这两个链表的公共节点。 看到这个题目,容易想到的方法是使用蛮力法解决:在第一个链表上顺序遍历每一个节点,每遍历到一个节点,就在第二个链表上顺序遍历每个节点。如果在第二个链表上有一个节点与第一个链表上的节点一样,则说明两个链表在这个节点上重合,于是就找到了他们的公共节点。如果第一个链表的长度为m,第二个链表的长度为n,那么,显然该方法的时间复..转载 2020-07-29 16:59:38 · 89 阅读 · 0 评论 -
两个链表归并
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: # 返回合并后列表 def Merge(self, pHead1, pHead2): # write c.原创 2020-07-27 20:43:36 · 239 阅读 · 0 评论 -
输出该链表中倒数第k个结点。
快慢指针思路 第一个指针走到K 然后第二个指针开始走 第一个指针走到尾巴的时候,第二个指针就是当前倒数K节点的指针 # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def FindKthToTail(self, head, k): # write cod原创 2020-07-26 23:15:30 · 64 阅读 · 0 评论 -
栈的压入、弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) class Solution: def IsPopOrder(self, pushV, popV): # write code here原创 2020-07-26 22:30:32 · 82 阅读 · 0 评论 -
包含min函数的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 # -*- coding:utf-8 -*- class Solution: def __init__(self): self.stack = [] self.minValue= [] # 保存最小值的数组 def push(self, node): # 入栈 self.stack.appen原创 2020-07-23 21:32:16 · 85 阅读 · 0 评论 -
斐波那契数列
1.直接使用了递归算法 def Fibonacci1(self, n): # write code here # F(0) = 0, F(1) = 1 # F(N) = F(N - 1) + F(N - 2), 其中 N > 1. if (n==0): return 0 elif (n==1): return 1 elif (n>1): .原创 2020-07-22 15:53:44 · 214 阅读 · 0 评论