513.找树左下角的值,112. 路径总和,106.从中序与后序遍历序列构造二叉树
513.找树左下角的值 层序遍历可以做,不知道用递归咋做。 2.认真读题,首先是必须同时满足深度最大和左边两个条件,通过一个全局变量maxDepth保存最大深度,result保存最大深度对应的节点值,这个值必须是左节点,本题没有对中节点的处理逻...
513.找树左下角的值 层序遍历可以做,不知道用递归咋做。 2.认真读题,首先是必须同时满足深度最大和左边两个条件,通过一个全局变量maxDepth保存最大深度,result保存最大深度对应的节点值,这个值必须是左节点,本题没有对中节点的处理逻...
110.平衡二叉树 (优先掌握递归) 不知道咋做。 在求二叉树的高度的代码上改,二叉树的高度肯定是大于等于0的,这里利用高度不可能是-1但可以表示当前子树不是平衡二叉树,子树不是平衡二叉树递归回来也不是平衡二叉树。 3. 在求二叉树的高度的...
226.翻转二叉树 根节点可以交换左右指针,其他层逻辑不清楚,觉得应该不是简单的交换指针。 从下到上,依次交换节点的左右指针即可,关键在于选择遍历顺序,可以选择前序遍历和后序遍历,后续遍历(左右中,右左中)是先处理下层节点再处理当前层节点,处理...
144. 二叉树的前序遍历 1.用递归。 2.递归结束条件是root为null。 3./ 4.用了半个小时。 二叉树的后序遍历1.用递归。 2.递归结束条件是root为null。 3.递归那里忘记传入数组。 4.用了半个小时。 二叉...
150. 逆波兰表达式求值 知道会用到栈,要用到入栈和弹出操作。 遇到数就入栈,遇到操作符就弹出两个操作数,用操作符进行计算,然后将结果入栈,直到遍历完后缀表达式,栈中最后一个元素就是逆波兰表达式计算结果。 注意两个数在和操作符的相对位置,弹...
232.用栈实现队列 知道要用两个栈实现,具体咋做忘了。队列的特性是先进先出,栈是先进后出,入队操作直接入栈就行,实现出队操作,入栈的第一个元素在栈最下面出来需要借助另一个栈b,先将所有元素入栈b,这样出栈的时候就是入队的第一个元素了,javasc...
151.翻转字符串里的单词 感觉需要用到反转字符串操作,但空格不知道如何处理。 先反转整个字符串,然后对单词进行反转,需要注意空格的处理。 3.坚持循环不变量原则,while循环中尽量将循环变量自增操作放置在最后,这样可以让循环变量自增后有...
344. 反转字符串 感觉需要用到指针,但不知道咋做。 倒序就是一个交换left,right指针对应指针值的过程。 纠结在javascript中能不能用字符串索引(就是当数组用),javascript中不能像数组那样索引元素。 再一次见识到...
454.四数相加II 暴力算法。 先两个循环将和放到map中,再两个循环求和查询map,计算总数求和,将一个4层循环复杂度降低了。要查找一个元素是否出现用map, map也是一个hash结构。 3.没啥问题。 用了半个小时左右。 赎金信...
242.有效的字母异位词 对每一个字符串用一个字典统计每个字母出现的次数,最后比较两个字典是否key和value都相同。都相同则是有效字母异位词, javascript中如何实现字典的key和value的比较? 这个编程问题可以分解为多个查询...