110.平衡二叉树,257.二叉树的所有路径,404.左叶子之和,222.完全二叉树的节点个数
110.平衡二叉树 (优先掌握递归) 不知道咋做。 在求二叉树的高度的代码上改,二叉树的高度肯定是大于等于0的,这里利用高度不可能是-1但可以表示当前子树不是平衡二叉树,子树不是平衡二叉树递归回来也不是平衡二叉树。 3. 在求二叉树的高度的...
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的比较? 这个编程问题可以分解为多个查询...
24.两两交换链表中的节点 第一想法是不知道这个题如何做,知道有改变指针这个操作。 双指针也太好用了,用双指针整个过程就是一个双指针移动加修改指针的过程,就像织毛衣一样的感觉。这里竟然要保存两个临时指针变量。 要保存两个临时指针变量,结合示意...