自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 回文链表

把链表里的数存入数组 因为数组的定位十分容易,所以把链表里的数依次存入数组中,从数组的第一个数和最后一个数开始,由两头向中间进发,依次比较 bool isPalindrome(struct ListNode* head){ if(!head||!head->next) return true; int a[999999]={0},i=0,j; struct ListNode *p=head; while(p)//把数据存入数组 { a[i++]=p->val; p=p->

2020-11-29 20:12:43 90

原创 反转链表

反转一个单链表 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 思路 设置一个守卫节点,首先用一个节点记录下初始链表的最后一个节点,每一次循环都把守卫后面的节点插入这个节点的后面 struct ListNode* reverseList(struct ListNode* head){ if(head==NULL||head->next==NULL) return head;//考虑空链表或只

2020-11-15 18:15:43 73

原创 环形链表

给定一个链表,判断链表中是否有环。 链表中有一个环,其尾部连接到第二个节点。 输入:head = [3,2,0,-4], pos = 1 输出:true 思路 本方法需要对「Floyd 判圈算法」(又称龟兔赛跑算法)有所了解。 设置一个快指针,一个慢指针,连个指针一块往后走,如果有环,快指针一定会先进入环,然后一直在环里移动,慢指针后面进来的时候,一定会和快指针在环内相遇。 如果没有环,快指针就会先到达尾结点。 bool hasCycle(struct ListNode *head) { if(h

2020-11-15 17:06:54 61

原创 移除链表元素

删除链表中等于给定值 val 的所有节点。 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5 删除中间节点和容易,拿一个节点q记录p-next,p=p->next,释放q; 麻烦的是如果第一个节点就是要删除的情况。 先放正确的 struct ListNode* removeElements(struct ListNode* head, int val){ if(head==NULL)

2020-11-15 16:51:11 70

原创 删除排序链表中的重复元素

给定一个排序链表,删除所有重复的元素,使得每一元素只出现一次。 输入: 1->1->2 输出: 1->2 输入: 1->1->2->3->3 输出: 1->2->3 struct ListNode* deleteDuplicates(struct ListNode* head){ if(head== NULL || head->next == NULL)return head; struct ListNode *p=head; struct

2020-11-15 16:36:05 99

原创 合并两个有序链表

迭代法 创建一个头结点,让t指向头结点 每次循环保证t的指向的下一个节点是两链表的节点相比,值小的那一个节点 struct Lian*MergeTwoList_Two(node *L1,node *L2){ if (!L1) return L2; if (!L2) return L1; struct Lian head = (struct Lian)malloc(sizeof(node)),*t = head; while (L1&&L2){ if (L1->a<=L2->

2020-11-11 21:17:30 46

ROSELINK-Android-1.1.7(1).APK

ROSELINK-Android-1.1.7(1).APK

2023-10-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除