![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
做题
艾听先生
假程序员一枚
展开
-
判断一个序列是否是一个二叉树的后序序列
题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。测试用例1:vector<int> v1 = { 5, 7, 6, 9, 11, 10, 8 };结果:true;测试用例2:vector<int> v1 = {7,4,6,5};结果:false;解法思路一...原创 2018-07-26 22:32:38 · 694 阅读 · 0 评论 -
反转链表
## 题目描述输入一个链表,反转链表后,输出新链表的表头。## Solution> 使用了一个栈,存储链表每个节点的指针,无需新建节点```c++class Solution {public: ListNode* ReverseList(ListNode* pHead) { if(pHead == NULL) return pHead; ...原创 2018-08-18 10:26:27 · 178 阅读 · 0 评论 -
顺时针打印矩阵
**题目描述**输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:``` 1 2 3 45 6 7 89 10 11 1213 14 15 16``` 则依次打印出数字`1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.`**Solution**一层一层剥离,记录开头和结尾。`right` and `down`代...原创 2018-08-18 10:22:44 · 161 阅读 · 0 评论 -
旋转数组的最小数字
**题目描述**把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。**思路:二分法**```class Solution {public: int mi...原创 2018-08-18 10:21:51 · 139 阅读 · 0 评论 -
重建二叉树
**题目描述**输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。**思路:递归**```c++/** * Definition for binary tree * struct TreeNode {...原创 2018-08-18 10:20:49 · 134 阅读 · 0 评论 -
装最多水的容器
给定 n 个非负整数 `a1, a2, ..., an`, 每个数代表了坐标中的一个点 `(i, ai)`。画 n 条垂直线,使得 i 垂直线的两个端点分别为`(i, ai)`和`(i, 0)`。找到两条线,使得其与 x 轴共同构成一个容器,以容纳最多水。#### Solution思路:从两头开始逐渐找长方形的长,```class Solution {public: /** ...原创 2018-08-18 10:19:50 · 902 阅读 · 0 评论 -
剑指offer: 二叉树的下一个结点
题目描述:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路分析:结合图(中序遍历)结合图,我们可发现分成两大类:1、有右子树的,那么下个结点就是右子树最左边的点;(eg:D,B,E,A,C,G)2、没有右子树的,也可以分成两类, a)是父节点左孩子(eg:N,I,L...原创 2018-08-02 17:40:29 · 134 阅读 · 0 评论 -
复杂链表的复制
题目描述:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)输入为::输出为:具体操作过程:(三步走)@1:在旧链表中创建新链表,只考虑next指针域。 @2:处理第二个指针域。@3:分离...原创 2018-07-27 18:21:26 · 108 阅读 · 0 评论 -
查找一个字符串中只出现一次的字符
#pragma once /*在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).*/#include<iostream>using namespace std;/***自己实现方案,*/#if 0static class Solution {publ...原创 2018-07-31 16:45:43 · 1379 阅读 · 0 评论 -
二叉树的镜像
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。Solution 递归/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right...原创 2018-08-18 10:27:46 · 216 阅读 · 0 评论