学习网站建设课程,国外租用服务器的平台,中国万网网站空间申请,网站主题 模板package com.zuo.linkedlist;import java.util.Stack;import com.zuo.linkedlist.IsPalindrome1.Node;/*** 题目:给定一个头结点,判断该链表是否回文结构* 例如:* 1-2-1 true* 1-2-2-1 true* 1-2-3 false* 思路:我们针对前面进行优化,空间复杂…package com.zuo.linkedlist;import java.util.Stack;import com.zuo.linkedlist.IsPalindrome1.Node;/*** 题目:给定一个头结点,判断该链表是否回文结构* 例如:* 1-2-1 true* 1-2-2-1 true* 1-2-3 false* 思路:我们针对前面进行优化,空间复杂度要减少一半,可以把链表对折,把右边的一半压入stack* 然后把链表的左边和压入的到stack弹出来,就行对比* 比如:1-2-2-1* 右边的数据是2,1* 1-2-3* 右边的数据是3* */
public class IsPalindrome2 {static class Node{public int val;public Node next;public Node(int val){this.val=val;}}public boolean isPalindrome2(Node head){if(head==null){return false;}StackNode stack=new StackNode();Node right=head.next;Node cur=head;while(cur.next!=null cur.next.next!=null){ //得到右边开始的下标,请记住这个地方是需要先写cur.next!=null right=right