【数据结构】C语言算法练习题——判断链表是否“对称”

题目链接:

链表的回文结构_牛客题霸_牛客网【牛客题霸】收集各企业高频校招笔面试题目,配有官方题解,在线进行百度阿里腾讯网易等互联网名企笔试面试模拟考试练习,和牛人一起讨论经典试题,全面提升你的技术能力icon-default.png?t=M4ADhttps://www.nowcoder.com/practice/d281619e4b3e4a60a2cc66ea32855bfa?tpId=49&&tqId=29370&rp=1&ru=/activity/oj&qru=/ta/2016test/question-ranking解题思路:

1. 利用 “ 快慢指针 ” 找到中间结点,如下图:

【数据结构】C语言算法练习题——判断链表是否“对称”_第1张图片

然后将中间结点的后半段(包括中间结点)进行 “ 逆置 ”  ,如下图:

【数据结构】C语言算法练习题——判断链表是否“对称”_第2张图片

然后定义一个从原链表开始的指向第一个结点的指针,然后再对 “ 逆置 ” 后的原链表的后半部分定义一个指向第一个结点的指针,然后俩个指向对指向的结点里的内容相互比较,如果相同,则该单链表对称(回文),如下图:

【数据结构】C语言算法练习题——判断链表是否“对称”_第3张图片

参考代码:

【数据结构】C语言算法练习题——判断链表是否“对称”_第4张图片

【数据结构】C语言算法练习题——判断链表是否“对称”_第5张图片 

 

你可能感兴趣的:(数据结构,数据结构,c语言,链表)