palindrome-linked-list 1.0.0
Palindrome Linked List
Loading...
Searching...
No Matches
Solution Class Reference

Public Member Functions

bool isPalindrome (ListNode *head)
 

Detailed Description

Definition at line 18 of file main.cpp.

Member Function Documentation

◆ isPalindrome()

bool Solution::isPalindrome ( ListNode head)
inline

Definition at line 21 of file main.cpp.

22 {
23 ListNode* ptr = head;
24 deque<ListNode*> queue;
25 while (ptr != NULL)
26 {
27 queue.push_back(ptr);
28 ptr = ptr->next;
29 }
30 // for (ListNode* node: queue)
31 // cout << "Node val: " << node->val << endl;
32 while (!queue.empty())
33 {
34 // odd word length
35 ListNode* upper = queue.front();
36 ListNode* lower = queue.back();
37 if (upper == lower)
38 return true; // all characters are processed, only middle one left, e.g. r in waraw is both upper and lower
39
40 // even word length
41 if (upper->val != lower->val)
42 return false;
43
44 queue.pop_front();
45 queue.pop_back();
46 }
47 return true; // all characters are processed, e.g. wawa
48 }
Definition for singly-linked list.
Definition main.cpp:10
int val
Definition main.cpp:11
ListNode * next
Definition main.cpp:12

References ListNode::next, and ListNode::val.

Referenced by main().


The documentation for this class was generated from the following file: