文件名称:leetcode算法题主函数如何写-algorithmsExercise:自己做的算法练习题
文件大小:64KB
文件格式:ZIP
更新时间:2024-07-19 23:00:15
系统开源
leetcode算法题主函数如何写 algorithmsDemo 用来记录一下学习算法的一些练习。 单链表判断是否是回文 可以参考LeetCode的234题。回文就是从左到右和从右到左都是一样的,比如123321,45654. 第一种方法:isPalindromeByReverse()。就是把链表逆序排列,再和原来的链表相比较是不是完全一样。由于逆序会破坏原来链表的顺序,所以先copy一份。 第二种方法:isPalindromeByFindCenter()。就是先找到链表的中点,然后判断中点的左右部分是否关于中点对称。如何快速找到中点呢?就用快慢指针的方法,慢指针每次前进一步,快指针每次前进两步,这样当快指针走到末尾的时候,慢指针就到了中点。由于是单链表,即使找到了中点,要向两边遍历也比较麻烦,所以先将中点后面的链表逆序,然后判断前半部分和逆序后的后半部分是否一致即可。 再说下细节,当链表是奇数时,如12321,返回的中点是3,逆序之后是123,而从头遍历的话,是123。当链表是偶数的时候,如1221,返回的中点是2(右边的2),逆序之后是12,而从头遍历的话是122。所以可以看到,逆
【文件预览】:
algorithmsExercise-master
----readme.md(18KB)
----.idea()
--------misc.xml(377B)
--------vcs.xml(167B)
--------modules.xml(288B)
--------inspectionProfiles()
--------algorithmsExercise.iml(762B)
----.gitignore(2KB)
----algorithms()
--------src()