龙空技术网

蹲在马桶看算法(Day18—LeetCode之NO.234回文链表)

Techsnail 198

前言:

现在小伙伴们对“算法用顺序栈判断是否为回文”大概比较关怀,你们都想要了解一些“算法用顺序栈判断是否为回文”的相关知识。那么小编同时在网上搜集了一些有关“算法用顺序栈判断是否为回文””的相关内容,希望同学们能喜欢,同学们一起来了解一下吧!

题目描述:

题目描述给定一个链表,判断该链表是不是回文链表(什么是回文呢? 这里拓展一下,引入回文数。回文数:121,12321,123321,465564等这些都是回文数,可以理解成两边对称,也可以理解逆序后完全相等。)

思路:

这里先提供一个通用思路(借助栈):最简单的方法是借用栈。因为栈是一种“后进先出”的数据结构(回文数的做法:把数字转成string,然后每一个字符(顺序遍历)push到stack中。再逐个判断stack中pop出来的元素是否与字符串中的每个字符相同(顺序遍历);;;;回文链表中的做法:把上面的字符换成对应的结点就可以了)。虽然这中思路容易理解,但是浪费空间。

1)、回文数

判断回文数的思路1:可以直接从数值的中间位置截断,第一位与最后一位比较,第二位与倒数第二位比较。下面附上该思路代码

判断回文数的思路2:把数值逆序,不借助栈。下面附上该思路代码

2)、回文链表

思路一:先附上用栈处理的代码:

思路二:快慢指针(处理链表的神器)。

标签: #算法用顺序栈判断是否为回文