ICode9

精准搜索请尝试: 精确搜索
  • 【墨鳌】【234.回文链表】2022-03-08 19:33:10

    解题思路 精彩 O(1) class Solution { public: bool isPalindrome(ListNode* head) { if (head == nullptr) { return true; } ListNode* firstHalfEnd = endOfFirstHalf(head); ListNode* secondHalfStart = reverse

  • 两两交换链表中的节点2022-03-01 23:02:58

    24. 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。   示例 1: 输入:head = [1,2,3,4] 输出:[2,1,4,3] 示例 2: 输入:head = [] 输出:[] 示例 3: 输入:head = [1] 输出:[1]

  • 建立一棵二叉树并对其进行中序遍历2022-03-01 09:03:12

    #include <iostream> using namespace std; #include <vector> struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode() : val(0), left(nullptr), right(nullptr) {} TreeNode(int x) : val(x), left(nullptr

  • 剑指 Offer II 047. 二叉树剪枝2022-02-28 21:05:15

    给定一个二叉树 根节点 root ,树的每个节点的值要么是 0,要么是 1。请剪除该二叉树中所有节点的值为 0 的子树。 节点 node 的子树为 node 本身,以及所有 node 的后代。 示例 1: 输入: [1,null,0,0,1] 输出: [1,null,0,null,1] 解释: 只有红色节点满足条件“所有不包含 1 的子

  • 编程题分类——链表2022-02-28 17:33:15

    前言 经验 正文 1. 两数相加 题目 code 答案 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(in

  • 链表的中间结点2022-02-27 23:34:49

    876. 链表的中间结点 给定一个头结点为 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。   示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) 返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。 注意,我们返

  • 31. 智能指针2022-02-27 20:32:37

    template<typename T> class CSmartPtr { public: CSmartPtr(T* ptr = nullptr) :mptr(ptr) {} CSmartPtr(const CSmartPtr<T>& src) { mptr = new T(*src.mptr); } ~CSmartPtr() { delete mptr; mptr = nullptr; } T& operator*() {

  • 分隔链表2022-02-27 13:32:46

    86. 分隔链表 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。   示例 1: 输入:head = [1,4,3,2,5,2], x = 3 输出:[1,2,2,4,3,5] 示例 2

  • C++智能指针2022-02-23 22:59:22

    智能指针 为什么需要智能指针 裸指针存在的问题 裸指针是平常定义的普通指针,他有许多的问题,主要是以下这些: 1.难以区分指向的是单个对象还是一个数组; 2.使用完指针之后无法判断是否应该销毁指针,因为无法判断指针是否“拥有”指向的对象; 3.在已经确定需要销毁指针的情况下,也

  • 使用LoadLibrary函数来加载dll库2022-02-22 23:00:07

    首先在一个解决方案中创建了三个项目,如下图所示:    DLL_TEST项目的配置类型是exe。另外两个项目的配置类型是dll    三个项目的文件路径排列如下所示:    x64文件夹中是三个项目编译生成的文件所在地。   三个项目中的文件:     Shared_lib.h文件代码如下: #pragma onc

  • 617. 合并二叉树2022-02-20 17:04:15

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} *

  • 226. 翻转二叉树2022-02-19 01:32:05

    递归 先解决空 在规定子递归项目 最后是现在怎么操作现在 【二者可以交换】 最后返回传递给父递归 广度有限遍历 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0),

  • [可能有用科技]堆有一大堆 A heap of heap2022-02-17 13:31:07

    前言 研究一下堆。 什么是堆 堆是一种点带权的树,每个节点的权都小于/大于其父亲节点的权。 以下为了方便就只说小根堆了。 堆通常需要支持以下几种功能 : 插入(insert) 查询最小值(min) 删除最小值 (extracy min) 合并(merge) 减小一个元素的值(decrease key) 二叉堆(Binary Heap) 结构最简

  • 94. 二叉树的中序遍历2022-02-11 10:02:14

    二叉树的中序遍历 给定一个二叉树的根节点 root ,返回它的 中序 遍历。 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 示例 4: 输入:root = [1,2] 输出:[2,1] 示例 5: 输入:root = [1,null,2] 输出:[1,2] 提示: 树中节点

  • 每日一题 02092022-02-09 16:04:09

    (2022.02.09) 二叉树(labuladong版) 昨天属于是被困难题打击到了,难受。 但是昨天继续左程云加看书,复习二叉树。 今日看左程云,写二叉树,复习二叉树。 //第226题 翻转二叉树 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left;

  • 剑指 Offer II 026. 重排链表2022-02-06 19:33:32

    题目 力扣 思路一 存储 用线性表把链表里的节点存下来,再一个个改变指向。 代码一 class Solution { public: void reorderList(ListNode* head) { if(head==nullptr) return; vector<ListNode*> v; ListNode *h=head; while(h){

  • 206. 反转链表2022-02-05 22:02:03

      给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。   示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输出:[2,1] 示例 3: 输入:head = [] 输出:[]   /** * Definition for singly-linked list. * struct ListNode { * i

  • 算法【树】 | 【栈用法】如何快速搞懂前序、中序、后序遍历?2022-02-05 16:32:38

    文章目录 一、树的遍历1.1 先序遍历1.2 中序遍历1.3 后序遍历1.4 代码 一、树的遍历

  • leetcode基础知识C++ nullptr 与 NULL关系2022-02-05 09:58:29

    在编写C程序的时候只看到过NULL,而在C++的编程中,我们可以看到NULL和nullptr两种关键字,其实nullptr是C++11版本中新加入的,它的出现是为了解决NULL表示空指针在C++中具有二义性的问题,为了弄明白这个问题,我查找了一些资料,总结如下。 一、C程序中的NULL 在C语言中,NULL通常被定义

  • 力扣剑指offer第17天 树2022-02-04 22:29:59

    47)二叉树剪枝 class Solution { public: TreeNode* pruneTree(TreeNode* root) { if(root->left) root->left = pruneTree(root->left); if(root->right) root->right = pruneTree(root->right); if(root->left==nullptr && r

  • 104. 二叉树的最大深度(c++)2022-02-02 20:59:26

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}

  • 【LeetCode】104. 二叉树的最大深度2022-02-02 16:02:24

    题目:104. 二叉树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。

  • [力扣]24. 两两交换链表中的节点2022-01-30 21:30:55

    /** * Definition for singly-linked list. * 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(nex

  • 【LeetCode】94. 二叉树的中序遍历2022-01-30 10:35:25

    题目:94. 二叉树的中序遍历 给定一个二叉树的根节点 root ,返回它的 中序 遍历。 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 示例 4: 输入:root = [1,2] 输出:[2,1] 示例 5: 输入:root = [1,null,2] 输出:[1,2]

  • 使用 FormatMessage 格式化 Windows 错误码.md2022-01-26 02:33:54

    https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-formatmessage #include <string> #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif // !WIN32_LEAN_AND_MEAN #include <Windows.h> std::string str_win_err(int er

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有