随笔分类 - 链表
链表中的倒数第k个结点
摘要:题目描述 输入一个链表,输出该链表中倒数第k个结点。 基本思想:定义两个指针a,b分别指向头节点, a指针先向前走k-1步(注意:因为倒数节点是从倒数第一个结点开始的,而不是零),然后a指针和b指针一起向前移动, 直到a->next == NULL。此时,b指针所指向的结点。即为倒数第K个结点。 边
阅读全文
如何实现单链表交换任意两个元素(不包括头结点)
摘要:对于单链表而言,假设交换A、B两个节点,那么需要交换A与B的next指针以及A、B直接前驱的next指针。 需要注意特殊情况:1、当A与B相邻时:A->next = B;或者B->next = A; 2、当A和B元素相同时,则没有必要交换。 3、A与B有一个节点是头结点,不需要交换。
阅读全文
单链表排序
摘要:这部分实现的排序方法是冒泡排序和快速排序。 冒泡排序的基本思想就是对于给定的n个元素,从第一个元素开始,依次对相邻的两个元素进行比较,当前面的元素大于后面的元素时,交换其位置,进行一轮比较和换位后,n个元素中最大的数将位于第n位,然后对前(n-1)个元素进行第二轮比较,重复该过程,直到进行比较的元素
阅读全文
如何实现单链表反转
摘要:#include #include #include "string.h" #include "stdio.h" #include #include #include using namespace std; struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), n...
阅读全文
浙公网安备 33010602011771号