package leetcode.editor.cn;
//请判断一个链表是否为回文链表。
//
// 示例 1:
//
// 输入: 1->2
//输出: false
//
// 示例 2:
//
// 输入: 1->2->2->1
//输出: true
//
//
// 进阶:
//你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?
// Related Topics 链表 双指针
import java.util.Stack;
//Java:回文链表
public class P234回文链表{
public static void main(String[] args) {
Solution solution = new P234回文链表().new Solution();
ListNode list = new ListNode(1);
list.next = new ListNode(2);
boolean ans = solution.isPalindrome(list);
// TO TEST
}
//leetcode submit region begin(Prohibit modification and deletion)
// Definition for singly-linked list.
public static class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
class Solution {
public boolean isPalindrome(ListNode head) {
if (head == null) {
return true;
}
StringBuilder str1 = new StringBuilder();
StringBuilder str2 = new StringBuilder();
while (head != null) {
str1.append(String.valueOf(head.val));
str2.insert(0, head.val);
head = head.next;
}
return (str1.toString()).equals((str2.toString()));
}
}
//leetcode submit region end(Prohibit modification and deletion)
}