回文链表

设计一种方式检查一个链表是否为回文链表。

您在真实的面试中是否遇到过这个题? 
Yes
样例

1->2->1 就是一个回文链表。

 

先将链表遍历,转成String数组,在对数组判断

 

public class Solution {
    /**
     * @param head a ListNode
     * @return a boolean
     */
    public boolean isSymmetricalListNode(ListNode head) {
       StringBuilder sb = new StringBuilder();
        if (head == null)
            return true;
        sb.append(head.val);
        head = head.next;
        while (head != null) {
            sb.append(",").append(head.val);
            head = head.next;
        }
        return isSymmetricalStrings(String.valueOf(sb).split(","));
    }
    
        public static boolean isSymmetricalStrings(String[] strings) {
        int l = 0;
        int r = strings.length - 1;
        while (r > l) {
            if (!strings[l++].equals(strings[r--]))
                return false;
        }
        return true;
    }
}
View Code

 

posted @ 2017-06-24 10:46  lanic  阅读(143)  评论(0编辑  收藏  举报