[leetcode]Palindrome Linked List

来源:互联网 发布:transparent软件中文版 编辑:程序博客网 时间:2024/04/27 15:05
public class Solution {
    public boolean isPalindrome(ListNode head) {
        if(head==null||head.next==null)
            return true;
        int n=0;
        ListNode t=head;
        while(t!=null){
            n++;
            t=t.next;
        }
        t=head;
        for(int i=0;i<(n+1)/2;i++){
            t=t.next;
        }
        ListNode second=reverseList(t);
        t=head;
        while(t!=null&&second!=null){
            if(t.val!=second.val)
                return false;
            t=t.next;
            second=second.next;
        }
        return true;
    }
    public ListNode reverseList(ListNode head){
        if(head==null||head.next==null)
          return head;
        ListNode prev=head,cur=head.next,next;
        prev.next=null;
        while(cur!=null){
            next=cur.next;
            cur.next=prev;
            prev=cur;
            cur=next;
        }
        return prev;
    }
}
0 0
原创粉丝点击