将数组转化为平衡二叉树,方法是将数组中间的数作为根节点,数组左边为左节点,数组右边为右节点。 注意点: 1.注意中间节点的选择:size=end-start+1;mid=st...
将数组转化为平衡二叉树,方法是将数组中间的数作为根节点,数组左边为左节点,数组右边为右节点。 注意点: 1.注意中间节点的选择:size=end-start+1;mid=st...
和104题目相似,区别在于本题树的层数由低到高存储。 代码: class Solution { public: vector<vector > result; void ...
找出树的最小层数。 注意点: 1.判断树是否为空。 2.如果当前层数大于等于已找出的最小层数,则停止向下搜索。 3.提前判断子节点是否为空,减少递归次数。 代码: intmi...
找树的最深层数,从叶子节点向上累加,得到最深层数。 使用了两种判定方法,方法1是判定节点为空节点再回滚,时间是8ms;另一种是当节点存在空子节点时便开始判断,避免进入空节点,...
判断树是否对称,每次将比对的两个节点的左右节点与右左节点对比: l->left==r->right && l->right==r->left,一直递归到叶子节点。 代码: b...
判断两个树是否相同,注意判断是否为NULL。 代码: bool isSameTree(TreeNode* p, TreeNode* q) { if(p==NULL || ...
根据大小顺序合并两数组。 注意点: nums1容器中m后的数字为0,注意注意i<m的判断。 代码: voidmerge(vector& nums1,intm,vector& ...
一个已排序的链表,删除重复数字。 代码: ListNode* deleteDuplicates(ListNode* head) { if(head==NULL) ...
You are climbing a stair case. It takes n steps to reach to the top. Each time you can ...
求平方根。 代码: intmySqrt(intx) { if(x<=1) returnx; intl=0,r=x,mid,sqrt; while(l<=r...
两个二进制数相加 代码: class Solution { public: vector string2num(string s) { vector num; ...
Given a non-empty array of digits representing a non-negative integer, plus one to the ...
Given astrings consists of upper/lower-casealphabetsandempty space characters' ',return...
Given an integer arraynums, find the contiguous subarray(containing at least one number...
The count-and-say sequence is the sequence of integers with the first five terms as fol...
将数插入数组中合适位置。 intsearchInsert(vector & nums,inttarget) { for(inti=0;i { if(targe...
查找子串 注意特殊情况:子串全部等于母串,返回0;子串为空或不存在返回-1; #include #include <vector> #include using namesp...
移除指定元素,返回剩下元素的总数。 注意点: 函数传入的是实参,所以必须要把指定元素移除,不能只是单纯统计数量。 代码: #include #include<vector> ...
去除重复元素,即计算不同元素数量。 注意点: 对容器进行操作时,注意判断是否为空。 代码: intremoveDuplicates(vector & nums) { if...
合并两列已排序链表. 注意点: 1.访问前判断是否为空。 代码: #include using namespace std; structListNode { int...