iis怎么使用来建设一个网站,品牌推广包括哪些方面,餐饮食材配送网站开发企划书,建设银行手机个人网站文章目录 一、移除链表元素1、题目介绍2、思路讲解3、代码实现 二、反转链表1、题目介绍2、思路讲解3、代码实现 三、相交链表1、题目介绍2、思路讲解3、代码实现 四、链表的中间结点1、题目介绍2、思路讲解3、代码实现 五、设计循环队列1、题目介绍2、思路讲解3、代码实现 六、… 文章目录 一、移除链表元素1、题目介绍2、思路讲解3、代码实现 二、反转链表1、题目介绍2、思路讲解3、代码实现 三、相交链表1、题目介绍2、思路讲解3、代码实现 四、链表的中间结点1、题目介绍2、思路讲解3、代码实现 五、设计循环队列1、题目介绍2、思路讲解3、代码实现 六、两两交换链表中的节点1、题目介绍2、思路讲解3、代码实现 一、移除链表元素
1、题目介绍 2、思路讲解
定义两个指针cur和prevcur指向head以cur为条件进行遍历循环分为cur的值等于val和不等于val两种情况分别处理。 3、代码实现 二、反转链表
1、题目介绍 2、思路讲解
定义三个指针cur指向头结点newHead指向空next指向cur的下一个结点遍历cur最后返回newHead。 3、代码实现 三、相交链表
1、题目介绍 2、思路讲解
先求出链表1和链表2的长度和判断他们是否最后相等如果不相等就不存在橡胶链表然后将链表长的那个走两链表长度之差最后看他们在哪里相等哪里就是第一个相交链表 3、代码实现 四、链表的中间结点
1、题目介绍 2、思路讲解
定义快慢指针当快指针未空时返回慢指针。 3、代码实现 五、设计循环队列
1、题目介绍 2、思路讲解
我们同样可以用链表实现队列用链表实现队列则较为简单因为链表可以在 O(1)O(1)O(1) 时间复杂度完成插入与删除。入队列时将新的元素插入到链表的尾部出队列时将链表的头节点返回并将头节点指向下一个节点。 3、代码实现
typedef struct {int* a;int front;int rear;int k;} MyCircularQueue;MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue* obj(MyCircularQueue*)malloc(sizeof(MyCircularQueue));obj-a(int*)malloc(sizeof(int)*(k1));obj-rearobj-front0;obj-kk;return obj;
}
bool myCircularQueueIsFull(MyCircularQueue* obj) {return ((obj-rear1)%(obj-k1))(obj-front);
}bool myCircularQueueIsEmpty(MyCircularQueue* obj) {return obj-rearobj-front;}
bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {if(myCircularQueueIsFull(obj)){return false;}obj-a[obj-rear]value;obj-rear;(obj-rear)%(obj-k1);return true;
}
bool myCircularQueueDeQueue(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return false ;obj-front;(obj-front)%(obj-k1);return true;}int myCircularQueueFront(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;elsereturn obj-a[obj-front];}int myCircularQueueRear(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;elsereturn obj-a[(obj-rearobj-k)%(obj-k1)];}void myCircularQueueFree(MyCircularQueue* obj) {free(obj-a);free(obj);
} 六、两两交换链表中的节点
1、题目介绍 2、思路讲解
可以通过递归的方式实现两两交换链表中的节点。
递归的终止条件是链表中没有节点或者链表中只有一个节点此时无法进行交换。
如果链表中至少有两个节点则在两两交换链表中的节点之后原始链表的头节点变成新的链表的第二个节点原始链表的第二个节点变成新的链表的头节点。链表中的其余节点的两两交换可以递归地实现。在对链表中的其余节点递归地两两交换之后更新节点之间的指针关系即可完成整个链表的两两交换。 3、代码实现