1249.移除无效的括号
先统计右括号的总数right,再遍历整个字符串。
遍历整个字符串:
若'(',if right>0,ans保留'(',左括号总数left++,right--;
else ans不保留。
若')',if left>0,ans保留')',左括号总数left--;
else ans不保留')',且right--。
若为字母,ans保留该字母。
count函数可以用来统计字符串中某个字符的个数使用方法是count(begin,end,‘a’),其中begin指的是起始地址,end指的是结束地址,第三个参数指的是需要查找的字符。
1382.将二叉搜索树变平衡
二叉搜索树→中序遍历→数组→二分/递归→平衡二叉搜索树
108.将有序数组转化为高度平衡二叉搜索树
105.前序遍历+中序遍历=二叉树 (好难,感觉结构不是很清楚,还用递归就更蒙了)
在中遍历中定位根结点;建立根节点。
(每次定位都需要遍历一次中序数组,时间复杂度o(n);
利用哈希映射,键对值记录[节点的值,节点在数组中的位置];根节点定位时间复杂度o(1))
在中序遍历中得到左子树节点数目,
递归构造左子树,链接到根结点。
先序遍历中「 左边界+1 , 左边界+1+左子树节点数目」个元素就对应了中序遍历中「 左边界 ,根节点定位-1」的元素。
递归构造右子树,链接到根结点。
先序遍历中「 左边界+1+左子树节点数目,右边界」个元素就对应了中序遍历中「 根节点+1,右边界」的元素。
103.二叉树的锯齿形层次遍
102.二叉树的层次遍历
---广度优先遍历:
锯齿形层次遍
可以利用「双端队列」的数据结构来维护当前层节点值输出的顺序。
当前层节点的遍历顺序 order:
从左到右,插入双端队列的末尾;从右到左,插入双端队列的头部。
199.二叉树的右视图
使用层序遍历,并只保留每层最后一个节点的值。
自己想出来啦。欧耶!