牛客题霸(判断一个链表是否为回文结构)

给定一个链表,请判断该链表是否为回文结构。

示例1

输入

复制

[1,2,2,1]

返回值

复制

true

备注:

1 \leq n \leq 10^61≤n≤10

 

 

这道题在力扣就没做出来,还是因为太懒,不愿意去思考,感觉用容器存一下算了,显然这道题不是这么做的,另一方面是陷入了一个误区,总认为做题是不能改变链表的原来的形状的,单这道题想在常数复杂度下做出来,,显然只能改变链表的链接,用快慢指针找到中间点,在slow指针去中间点的路上,将链表反转,然后就可以从中间点来比较值是否相等了,这道题算是快慢指针和链表反转的综合运用吧,也是非常有意思的

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */

class Solution {
public:
    /**
     * 
     * @param head ListNode类 the head
     * @return bool布尔型
     */
    bool isPail(ListNode* head) {
        
        
        //让一个指针走到中间 让慢指针将前面的链表反转 然后依次比较值是否相等
        //1->2->2->1     1<-2  2->1;
        // 1->2->3->2->1
        
        ListNode* slow=head,*fast=head;
        ListNode* pre=NULL;
        while(fast&&fast->next){
           fast=fast->next->next;
           ListNode *l=slow->next;
           slow->next=pre;
           pre=slow;
           slow=l;
        }
        if(fast!=NULL) slow=slow->next;
        while(pre){
            if(pre->val!=slow->val)
                return false;
            pre=pre->next;
            slow=slow->next;
        }
        return true;;
        
    }
};
<think>嗯,用户让我推测2025年武汉科技大学计算机电子信息专业的复试程序设计机试考,并给出备考计划。首先,我需要了解该学校的复试通常考什么。武汉科技大学作为一所重点大学,计算机专业的机试可能偏向基础算法和数据结构。 用户可能是准备考研复试的学生,对考试内容不太确定,想提前准备。他们可能希望有针对性的复习建议,而不仅仅是泛泛而谈。需要考虑到他们可能已经有一定的基础,但需要系统化的复习策略。 首先,推测考方面,我应该参考历年该校或其他类似院校的机试目。通常常见的考点包括数组、字符串处理,排序算法,链表操作,树结构遍历,动态规划,递归,图论基础等。比如,力扣或网上的中等难度目可能比较接近。 然后,备考计划需要分阶段,比如基础巩固、强化训练、模拟冲刺。每个阶段的时间分配要合理,建议从基础知识开始,逐步过渡到真和模拟。同时,要注意代码的手写能力,因为机试可能需要手写代码。 另外,用户可能需要资源推荐,比如经典的教材、在线判平台(OJ),以及时间管理建议。还要提醒他们注意调试能力和代码规范,这些在考试中也很重要。 可能需要提醒用户,虽然推测目有参考性,但具体考试内容以学校通知为准,建议多渠道获取信息,比如联系学长学姐或查看往年真。备考计划要全面,涵盖知识点复习、实战练习和模拟考试,确保全面覆盖可能考点。</think>根据武汉科技大学计算机电子信息专业复试特点及程序设计机试考察方向,结合近年考研趋势,我为您整理推测和备考建议如下: **一、2025年机试考预测(重点方向)** 1. **基础算法**(必考) - 数组元素逆置/螺旋矩阵生成 - 字符串处理(回文判断/子串查找) - 质数筛选/最大公约数计算 2. **数据结构应用** - 链表操作(合并有序链表/环检测) - 二叉树遍历(非递归实现/深度计算) - 栈队列应用(括号匹配/迷宫路径) 3. **动态规划典型** - 背包问(0-1背包/完全背包) - 最长公共子序列/递增子序列 - 矩阵链乘法最优解 4. **图论基础** - 邻接矩阵DFS/BFS遍历 - Dijkstra最短路径算法 - 拓扑排序实现 5. **特色型** - 文件操作(数据统计/格式转换) - 数学建模类(约瑟夫环/汉诺塔变形) - 系统设计(简单计算器/学生信息管理系统) **二、四阶段备考计划(建议6个月周期)** ```mermaid gantt title 复试备考时间轴 section 基础巩固(2个月) 语法复习 :done, a1, 2024-10-01, 15d 数据结构精讲 :active, a2, after a1, 30d 算法入门 : a3, after a2, 15d section 专项突破(2个月) 经典算法实现 : a4, 2024-12-01, 30d OJ平台刷 : a5, after a4, 30d section 实战模拟(1个月) 历年真演练 : a6, 2025-02-01, 15d 机试环境模拟 : a7, after a6, 15d section 冲刺调整(1个月) 错重做 : a8, 2025-03-01, 15d 考前技巧梳理 : a9, after a8, 15d ``` **三、关键备考策略** 1. **语言选择建议**: - 优先掌握C/C++(处理底层操作更灵活) - 备选Java/Python(注意库函数使用限制) 2. **每日训练方案**: ```python # 示例训练模板 def daily_practice(): 基础 = 3-5道(数组/字符串) 中等 = 2-3道(树/图) 难 = 1道(动态规划/复杂逻辑) review(昨日错) record(新解思路) ``` 3. **必备资源清单**: - 教材:《算法导论》《数据结构(严蔚敏)》 - OJ平台:洛谷/LeetCode/学校自有库 - 工具:VS Code(配置竞赛模板)/网模拟环境 4. **考场应对技巧**: - 手写代码规范:特别注意缩进和注释 - 时间分配策略:简单30min/中等45min/难25min - 异常处理:预留边界值检测时间 **四、特别提醒** 1. 近年新增考点关注: - 简单机器学习算法实现(如KNN) - 矩阵运算优化(CUDA基础) - 多线程基础应用 2. 建议获取近3年回忆版真(可通过考研论坛/学长学姐) 3. 关注学院官网10-12月的考试大纲更新 **五、注意事项** 1. 调试能力培养:建议每周进行2次无IDE手写调试 2. 代码复杂度控制:重点训练O(nlogn)级别算法 3. 笔试附加准备:建议同步复习计算机网络/操作系统基础概念 建议每天保持3小时有效编程时间,重点突破动态规划和树结构相关型。考前1个月要模拟真实考试环境(禁用自动补全/限定时间)。祝您备考顺利!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值