判断一个链表回文结构

思路1:额外空间复杂度O(n)

申请栈,全部压栈之后,弹出进行比较

思路2:额外空间复杂度O(n/2)

申请栈,利用快慢指针,快指针每次走2步,慢指针每次走1步,快指针指向空的时候,

慢指针会到栈的中间,后续元素进行压栈操作,然后指针从最开始走,和堆栈元素进行

比较

思路3:额外空间复杂度 O(1)

快慢指针,快指针走到末尾的时候,慢指针在中间,将慢指针的next置为NULL,快指针

后半部分进行逆序操作,然后从两端开始进行遍历比较,最后把后半部分顺序调整回去

注意链表的奇偶性

猜你喜欢

转载自blog.csdn.net/liu_fei_er/article/details/80157296