Bootstrap

每日一算法

答主大二,这学期刚开了数据结构与算法的课程,但课堂上只提及基础的增删改查,远远不能满足对数据结构相对熟悉的需求,因而答主便有了‘每日算法’专题练习的想法,有需要的可以共同练习,与君共勉

适用人群:数据结构与算法初学者
题型大多来自leetcode

一.3月30日

1.需求

请判断一个链表是否为回文链表。
示例 1: 输入: 1->2 输出: false
示例 2: 输入: 1->2->2->1 输出: true

2.思路分析

  1. 回文链表即将链表的后半部分反转后和前半部分数据一致
  2. 链表无法从后边开始遍历,因此可以考虑使用数组,将链表元素依次赋给数组,
  3. 遍历数组,比较对应位置的元素

3.伪代码演示


/**
 * Definition for singly-linked list.
 * struct ListNode {//声明链表节点
 *     int val;
 *     struct ListNode *next;
 * };
 */


bool isPalindrome(struct ListNode* head){
   
    int a[200000] ;/声明一个数组
    int i=0;
    while(head){
       //将链表元素依次赋给数组
        a[++i]=head->val;
        head=head->next;     
    }
    for(int y=1;

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;