
链表
一只热爱游戏的猫
崩坏3 - 游戏客户端研发工程师
展开
-
LeetCode142. Linked List Cycle||(环形链表)——— 判断链表是否有环以及求其入环节点
struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(nullptr) {}};//判断链表是否有环//方法://1、空间复杂度n:使用set集合保存每一个节点,判断是否有重复//2、空间复杂度1:使用两个指针,快指针走两步,慢指针走一步;// 若快指针为null则无环。/...原创 2018-10-15 15:57:07 · 292 阅读 · 0 评论 -
LeetCode 反转链表(递归 / 迭代)
//递归 //reverseList()返回的是从currentNode节点开始后面的链表整个反转后的结果的头节点 ListNode * reverseList(ListNode* currentNode) { if (currentNode == nullptr)return nullptr; if (currentNode->next == nullptr)return ...原创 2019-02-05 19:20:27 · 378 阅读 · 0 评论 -
LeetCode 合并两个有序链表(非递归迭代:原地合并 + 递归)
struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(nullptr) {}};#include <iostream>using namespace std;class Solution {public: //个人第一想法版本(非递归迭代) Li...原创 2019-02-06 00:29:07 · 508 阅读 · 0 评论 -
LeetCode 回文链表(遍历过程中逆置一半的链表)
struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: bool isPalindrome(ListNode* head) { int lenth, i; Li...原创 2019-02-06 22:16:05 · 272 阅读 · 0 评论 -
LeetCode382. 链表随机节点————蓄水池抽样算法
//蓄水池抽样class Solution {private: ListNode * HEAD;public: //初始化 Solution(ListNode* head) { srand((unsigned)time(nullptr)); HEAD = head; } //获取链表上的随机节点的值 int getRandom() { L...原创 2018-10-18 20:30:50 · 620 阅读 · 0 评论