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

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

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

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param head ListNode类 the head
     * @return bool布尔型
     */
    public boolean isPail (ListNode head) {
        // write code here
        //ListNode reverseNode = new ListNode();

        ListNode resHead = head;
        Stack<ListNode> stack = new Stack<>();

        while (head != null) {
            stack.add(head);
            head = head.next;
        }

        //反转
        ListNode reverseNode = new ListNode(-1);
        ListNode tempHead = reverseNode;
        while (!stack.isEmpty()) {
            ListNode node = stack.pop();
            reverseNode.next = new ListNode(node.val);
            reverseNode = reverseNode.next;
        }

        ListNode reverseList =  tempHead.next;

        while(resHead != null && reverseList != null){
            //System.out.println("resHead.val:"+resHead.val +" reverseList.val:"+reverseList.val);
            if(resHead.val != reverseList.val){
                return false;
            }
            resHead = resHead.next;
            reverseList = reverseList.next;
        }

        return true;
    }
}

全部评论

相关推荐

03-29 14:19
门头沟学院 Java
你背过凌晨4点的八股文么:加油同学,人生的容错率很高,只是一个暑期罢了,后面还有很多机会!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务