110.平衡二叉树,257.二叉树的所有路径,404.左叶子之和,222.完全二叉树的节点个数

​110.平衡二叉树 (优先掌握递归) 不知道咋做。 在求二叉树的高度的代码上改,二叉树的高度肯定是大于等于0的,这里利用高度不可能是-1但可以表示当前子树不是平衡二叉树,子树不是平衡二叉树递归回来也不是平衡二叉树。 3. 在求二叉树的高度的...

226.翻转二叉树,101.对称二叉树,104.二叉树的最大深度,111.二叉树的最小深度

​226.翻转二叉树 根节点可以交换左右指针,其他层逻辑不清楚,觉得应该不是简单的交换指针。 从下到上,依次交换节点的左右指针即可,关键在于选择遍历顺序,可以选择前序遍历和后序遍历,后续遍历(左右中,右左中)是先处理下层节点再处理当前层节点,处理...

N叉树遍历相关(144,94,102,102,107,199,429,515,16,117,104,111)

​144. 二叉树的前序遍历 1.用递归。 2.递归结束条件是root为null。 3./ 4.用了半个小时。 二叉树的后序遍历1.用递归。 2.递归结束条件是root为null。 3.递归那里忘记传入数组。 4.用了半个小时。 二叉...

150.逆波兰表达式求值

​150. 逆波兰表达式求值 知道会用到栈,要用到入栈和弹出操作。 遇到数就入栈,遇到操作符就弹出两个操作数,用操作符进行计算,然后将结果入栈,直到遍历完后缀表达式,栈中最后一个元素就是逆波兰表达式计算结果。 注意两个数在和操作符的相对位置,弹...

232.用栈实现队列,225.用队列实现栈,20.有效的括号,1047.删除字符串中的所有相邻重复项

​232.用栈实现队列 知道要用两个栈实现,具体咋做忘了。队列的特性是先进先出,栈是先进后出,入队操作直接入栈就行,实现出队操作,入栈的第一个元素在栈最下面出来需要借助另一个栈b,先将所有元素入栈b,这样出栈的时候就是入队的第一个元素了,javasc...

151.翻转字符串里的单词,卡码网:55.右旋转字符串

​151.翻转字符串里的单词 感觉需要用到反转字符串操作,但空格不知道如何处理。 先反转整个字符串,然后对单词进行反转,需要注意空格的处理。 3.坚持循环不变量原则,while循环中尽量将循环变量自增操作放置在最后,这样可以让循环变量自增后有...

344.反转字符串,541.反转字符串II

​344. 反转字符串 感觉需要用到指针,但不知道咋做。 倒序就是一个交换left,right指针对应指针值的过程。 纠结在javascript中能不能用字符串索引(就是当数组用),javascript中不能像数组那样索引元素。 再一次见识到...

454.四数相加II,383.赎金信,15.三数之和,18.四数之和

​454.四数相加II 暴力算法。 先两个循环将和放到map中,再两个循环求和查询map,计算总数求和,将一个4层循环复杂度降低了。要查找一个元素是否出现用map, map也是一个hash结构。 3.没啥问题。 用了半个小时左右。 赎金信...

242.有效的字母异位词,349. 两个数组的交集,202.快乐数,1. 两数之和

​ 242.有效的字母异位词 对每一个字符串用一个字典统计每个字母出现的次数,最后比较两个字典是否key和value都相同。都相同则是有效字母异位词, javascript中如何实现字典的key和value的比较? 这个编程问题可以分解为多个查询...

24. 两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题 02.07. 链表相交,142.环形链表II

​ 24.两两交换链表中的节点 第一想法是不知道这个题如何做,知道有改变指针这个操作。 双指针也太好用了,用双指针整个过程就是一个双指针移动加修改指针的过程,就像织毛衣一样的感觉。这里竟然要保存两个临时指针变量。 要保存两个临时指针变量,结合示意...

123