公司动态
LeeCode234 回文链表
给你一个单链表的头节点head请你判断该链表是否为回文链表。如果是返回true否则返回false。示例 1输入head [1,2,2,1]输出true示例 2输入head [1,2]输出false提示链表中节点数目在范围[1, 105]内0 Node.val 9进阶你能否用O(n)时间复杂度和O(1)空间复杂度解决此题答案测试代码void testLeeCode234(void) { struct ListNode { int val; ListNode *next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), next(nullptr) {} ListNode(int x, ListNode *next) : val(x), next(next) {} }; class Solution { public: bool isPalindrome(ListNode* head) { std::vectorint vec; for (ListNode *node head;node ! nullptr; node node-next) { vec.emplace_back(node-val); } // for (auto it vec.begin(); it ! vec.end(); it) { // std::cout *it ; // } for (int i 0, j vec.size() - 1; i j;) { if(vec[i] ! vec[j]) return false; i; j--; } return true; } }; // test ListNode node1(1), node2(2), node3(2), node4(1); node1.next node2; node2.next node3; node3.next node4; Solution solution; auto result solution.isPalindrome(node1); std::cout result: (result? true:false) std::endl; }运行ok. 提交到LeeCodeok.