题解 | 判断一个链表是否为回文结构

判断一个链表是否为回文结构

https://www.nowcoder.com/practice/3fed228444e740c8be66232ce8b87c2f

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 *	ListNode(int x) : val(x), next(nullptr) {}
 * };
 */
#include <stack>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 the head
     * @return bool布尔型
     */
    bool isPail(ListNode* head) {
        // write code here
	  //优先判断特殊情况
        if(head->next==nullptr) return true;
        //利用双指针 遍历数组 
         int arr[100005];
            int i1=0;
            int i2=0;
         while (head) {
            arr[i1]=head->val;
            i1++;
            head=head->next;

         }
        i1=i1-1;//因为循环中i1++在后,最后一次循环结束后i1的值比真实值多加了1;
        while (i1>=i2) {
            if(arr[i1]!=arr[i2]){
                return false;
            }else {
			  //双指针
               i1--;
               i2++;
            }
        }

          return true;
    }
};

全部评论

相关推荐

二十岁的编程男神王大...:读博吧兄弟,你这绩点太好了,何必转码,另外哈哈哈真见到有括号标出来985的,这个不标注也知道吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务