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

浙公网安备 33010602011771号