1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
func (head *ListNode) *ListNode { if head.Next == nil { return head } newHead := reverse(head.Next) head.Next.Next = head head.Next = nil return newHead }
func isPalindrome(head *ListNode) bool { if head == nil{ return true } tmp:=head n := 0
for tmp != nil { n++ tmp = tmp.Next }
newHead := head
if n%2==0 { for i:=0;i<=n/2-1 ;i++ { newHead = newHead.Next } }else{ for i:=0;i<n/2 ;i++ { newHead = newHead.Next } }
newHead = reverse(newHead)
for newHead != nil { if head.Val != newHead.Val{ return false } head = head.Next newHead = newHead.Next } return true }
|
近期评论