ʕ·͡ˑ·ཻ ʕ•̫͡• ʔ•̫͡•ཻʕ•̫͡•ʔ•͓͡•ʔ

  刚学完数据结构的第二章,今天在写“回文链表”时遇到一点问题。

  我的思路如下:用一个头指针head和一个尾指针tail,头指针向前移动head++,尾指针向后移动tail--,在这个过程中比较他们的值是否相等,如果不相等则返回false;如果相等则两个指针继续移动直至两个指针重合则返回true,说明它是回文链表,但是我编译运行之后并没有得到结果,我在想哪里出了问题,感觉思路没有问题,在看了代码之后我在想能不能用tail--逆向遍历链表呢,如果能逆向遍历那岂不是逆转链表特别容易了吗根本不用迭代和递归了,于是我去向别人求助查阅资料,得知链表中不能进行自增自减运算只能用p=p->next,我是感觉这两种一样,但为什么实际上不一样呢,然后我写了一个程序来验证。

  程序测试结果表明,p++和p->next确实不一样,链表加1后不一定指向下一个节点,物理位置并没有连着。由于当时想到了线性表合并中两个指针的自增操作,把它带进了链表中,实际上顺序表是顺序存储结构,但链表并不是,所以p++并不等于p->next。

​ 接着,说一下这几天写程序的感想。

​ 《数据结构与算法》这本书非常重要,我们老师在给我们上课时讲到大二一定要过“编程关”,并建议我们每天花上一两个小时写程序。虽然我们是计算机科学与技术专业,编程能力的要求可能也没有软件工程要高,但是我觉得在学习中要以软件工程的标准来要求自己,有时间就去写写程序,量变达到质变,能力太重要啦。另外一点小小感悟,没事的时候就爱随便翻翻网站,今天逛了ccpc网络选拔赛和LeetCode的周赛排名榜,全国排名或者世界排名靠前的人基本上都是清华北大以及一些其他实力较强的985院校,像我所在的普通一本院校连报名的人都很少更别说获奖了,其实绝大多数人给我的感觉都不知道自己真正想要的是什么。可能差距从高考那一天就已经开始了,有时也会感悟,985院校真的会给你提供一个完全不一样的更高的平台。我也想好好努力,以考研为跳板去一个更高的平台,遇见更优秀的你和我!