随笔分类 -  Leetcode刷题集锦

摘要:留白 阅读全文
posted @ 2020-07-17 21:51 Akmf's_blog 阅读(70) 评论(0) 推荐(0)
摘要:一开始没想到用栈,想的是和数组一样的遍历时间复杂度高 vector<int> nextLargerNodes(ListNode* head) { vector<int> res; ListNode *p = head; while(p->next != nullptr) { ListNode *cu 阅读全文
posted @ 2020-07-14 18:44 Akmf's_blog 阅读(123) 评论(0) 推荐(0)
摘要:19 删除链表的倒数第N个结点 109 有序链表转换二叉搜索树 160 相交链表 328 奇偶链表 1019 链表中的下一个更大节点 面试题 02.04. 分割链表 阅读全文
posted @ 2020-07-14 18:10 Akmf's_blog 阅读(53) 评论(0) 推荐(0)
摘要:小于给定元素的放前面,大于给定元素的放后面 新建两个链表进行操作 ListNode* partition(ListNode* head, int x) { if(head == nullptr) return nullptr; ListNode *cur = head; ListNode *l = 阅读全文
posted @ 2020-07-14 18:09 Akmf's_blog 阅读(43) 评论(0) 推荐(0)
摘要:因为是升序的 所以利用快慢指针找到中间结点,将中间结点作为根节点 再递归左子树和右子树 TreeNode *sortedListToBST(ListNode *head) { return buildTree(head,nullptr); } TreeNode *buildTree(ListNode 阅读全文
posted @ 2020-07-12 20:13 Akmf's_blog 阅读(54) 评论(0) 推荐(0)
摘要:尝试只用一趟扫描实现 注意点:不能用malloc 要用new ListNode 为什么要建立头结点 是因为当单链表只有一个结点的时候 例如单链表只有1 n=1 代表单链表清空 所以要设置头结点 倒数第n个结点 可以利用一个指针先行后移动n位 再一起移动 有个问题是如果是1 2 3 4 5 n=6 的 阅读全文
posted @ 2020-07-12 19:24 Akmf's_blog 阅读(71) 评论(0) 推荐(0)
摘要:电子科技大学考研题 指针移动问题 ListNode* getIntersectionNode(ListNode *headA, ListNode *headB) { if(headA == nullptr && headB == nullptr) return nullptr; ListNode * 阅读全文
posted @ 2020-07-12 19:21 Akmf's_blog 阅读(46) 评论(0) 推荐(0)
摘要:这个是自己一开始自己想的,没有考虑原地操作,空间不是O(1) ListNode *oddEvenList(ListNode *head) { ListNode *p = head; ListNode *odd = new ListNode(INT_MIN); odd->next = nullptr; 阅读全文
posted @ 2020-07-12 19:19 Akmf's_blog 阅读(51) 评论(0) 推荐(0)