使用递归和回溯法找二叉树的所有路径
题目是 257.二叉树的所有路径 这道题需要我们找到所有从根节点到叶子结点的路径,起初我想的是使用深度优先遍历,但是我在遍历的时候没有找到方法来保存之前已经遍历…
题目是 257.二叉树的所有路径 这道题需要我们找到所有从根节点到叶子结点的路径,起初我想的是使用深度优先遍历,但是我在遍历的时候没有找到方法来保存之前已经遍历…
题目 二叉树最小深度 这道题跟二叉树的最大深度非常相似,但是在使用递归或迭代方法处理时需要注意:对于左右子树都为空的结点,从根节点到该节点的深度才是最小深度;如…
递归解法我不再赘述。我讲一下迭代解法。迭代解法处理后序遍历的关键是处理根节点在第二次访问的时候它的值才会被加入到List。 所以需要用到一个prev变量保存当前…
注意 if-else 的条件判断,这道题在处理 if-else 时要注意不能使用 if 代替 if-else,因为每一次循环要么往栈里面添加元素,要么判断是否符…
1、 这道题如果用暴力方法直接在原来的字符串里面找,时间复杂度是 O(n^2)。 2、 使用 KMP 算法求出 next 数组,通过 next 数组找到 nex…
错误的方法:我一开始套用数组排序的方法,想着把小于x的元素都两两交换,但是这道题的数据结构是链表,所以无法倒序遍历。另外这道题采用链表就是想考察链表的相关增、删…
讲一下我的思路 一开始我想的是倒序遍历,查看nums[i]==0的元素前面的值是否大于等于从0开始经过的距离,这种做法条件判断很繁琐,不是正确的做法。 下面讲解…
这一题主要考的是数学关系。 要想通过一趟扫描就找到倒数第n个结点,可以考虑用快的结点比慢的结点多走n步。 然后当快结点的next是null,就停止遍历。当然,为…
这道题很多细节需要注意。 老规矩,加上虚拟的头节点dummyhead,便于处理。考虑到如果结点数目是奇数,就不再处理最后一个结点,所以while循环里面判断条件…
有个处理链表的技巧,在待处理的链表头加上一个自己设计的头。这个头指向原来链表的头部。 定义一个自己的头节点s,s.next 指向原来链表的头部,这样就不用另外考…