#include #include "jianzhi_offer.h" /** * 剑指 Offer 06. 从尾到头打印链表 */ TEST(NodeListTest, BasicAssertions) { yaha::ListNode *node = new yaha::ListNode(1); node->next = new yaha::ListNode(3); node->next->next = new yaha::ListNode(2); auto res = node->reverse_print(node); ASSERT_EQ(2, res[0]); ASSERT_EQ(3, res[1]); ASSERT_EQ(1, res[2]); } TEST(NodeListStackTest, BasicAssertions) { yaha::ListNode *node = new yaha::ListNode(1); node->next = new yaha::ListNode(3); node->next->next = new yaha::ListNode(2); std::vector res; node->reverse_stack(node, res); ASSERT_EQ(2, res[0]); ASSERT_EQ(3, res[1]); ASSERT_EQ(1, res[2]); } /** * 剑指 Offer 24. 反转链表 */ TEST(ListReverseTest, BasicAssertions) { yaha::ListNode *node = new yaha::ListNode(1); node->next = new yaha::ListNode(2); node->next->next = new yaha::ListNode(3); node->next->next->next = new yaha::ListNode(4); node->next->next->next->next = new yaha::ListNode(5); auto l = node->reverse_list(node); ASSERT_EQ(5, l->val); ASSERT_EQ(4, l->next->val); ASSERT_EQ(3, l->next->next->val); ASSERT_EQ(2, l->next->next->next->val); ASSERT_EQ(1, l->next->next->next->next->val); }