![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
重学c++
weixin_43326110
这个作者很懒,什么都没留下…
展开
-
#牛客网 剑指offer-重建二叉树
一、题目 解法一—— 递归 class Solution { public: TreeNode* reConstructBinaryTree(vector<int> pre,vector<int> vin) { if(pre.size() == 0) return nullptr; TreeNode* root = new TreeNode(pre[0]); int temp; root-&...原创 2021-11-03 10:34:18 · 62 阅读 · 0 评论 -
#牛客网 剑指offer-二叉搜索树的第k个结点
一、题目 解法一——递归中序遍历 class Solution { public: TreeNode* res; TreeNode* KthNode(TreeNode* pRoot, int k) { inOrder(pRoot,k); return res; } void inOrder(TreeNode* pRoot,int &k) { if(pRoot==nullptr)...原创 2021-11-01 17:55:42 · 83 阅读 · 0 评论 -
#牛客网 剑指offer-按之字形顺序打印二叉树
一、题目 解法一、队列+遍历 class Solution { public: vector<vector<int> > Print(TreeNode* pRoot) { vector<vector<int>> ret; if(pRoot == nullptr) return ret; queue<TreeNode*> q; int index = 0; ...原创 2021-10-30 12:22:35 · 79 阅读 · 0 评论 -
#牛客网 剑指offer-二叉树的深度
一、题目 描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 示例 输入:{1,2,3,4,5,#,6,#,#,7} 返回值:4 解法一、递归 返回左岔和右岔数量比较大的那个。 分叉等于null说明深度为1;否则返回他的深度并+1就是当前树的深度。 class Solution { public: int TreeDepth(TreeNode* pRoot) { int ansl...原创 2021-10-26 13:46:04 · 68 阅读 · 0 评论 -
#牛客网 剑指offer-链表中环的入口结点
一、题目 解法一、快慢指针法 通过两个快慢不同的指针,快的每次前进两格,慢的每次一格。 相遇点与环入口的距离与pHead与环入口的距离相等。然后即可找到环入口。 class Solution { public: ListNode* EntryNodeOfLoop(ListNode* pHead) { ListNode* l1 = pHead; ListNode* l2 = pHead; while(l1 != nul...原创 2021-10-22 11:32:53 · 80 阅读 · 0 评论 -
#牛客网 剑指offer-两个链表的第一个公共结点
一、题目 二、解法-遍历 class Solution { public: ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) { ListNode* p1 = pHead1; ListNode* p2 = pHead2; while(p1!=p2) { p1 = p1->next; ...原创 2021-10-21 12:07:05 · 52 阅读 · 0 评论 -
#牛客网 剑指offer-合并两个排序的链表
一、题目 解法一——递归算法 class Solution { public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if(pHead1==nullptr) { return pHead2; } if(pHead2==nullptr) { return pHead1; ...原创 2021-10-19 21:15:11 · 51 阅读 · 0 评论 -
#牛客网 剑指offer-反转链表
一、题目 二、解法一-前插法 把上次循环获得的链表放在当前链表的next中,通过temp使得pHead每次循环中后移一位,从而完成前插。 注意:再设置指针时,记得为指针赋值nullptr,否则无法放在赋值等号的右边,会报错。 class Solution { public: ListNode* ReverseList(ListNode* pHead) { ListNode* ans=nullptr; ListNode* temp=nullptr...原创 2021-10-18 15:51:42 · 60 阅读 · 0 评论 -
#牛客网 剑指offer-链表中倒数最后k个结点
一、题目 二、解法一-先计数再递减 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pHead ListNode类 * @param k int整型 * @return ListNode类 */ ListNode* FindKthToTail(ListNode* pHead, int k) ...原创 2021-10-17 19:10:04 · 54 阅读 · 0 评论 -
#牛客网 剑指offer-链表逆序输出
一、链表结构 链表结构由节点ListNode结构组成每个节点包含值val和指向下个节点的指针next两个元素。 可通过->调用节点的元素,例如 ListNode *head; ListNode *temp; int a; temp = head->next; a = head->val; //题目中给出的链表结构代码 /** * struct ListNode { * int val; * struct ListNode *next;...原创 2021-10-16 15:25:11 · 80 阅读 · 0 评论