搜索
保护眼睛
这个作者很懒,什么都没留下…
展开
-
7、13、34
剑指offer剑指 Offer 07. 重建二叉树剑指 Offer 13. 机器人的运动范围剑指 Offer 34. 二叉树中和为某一值的路径剑指 Offer 07. 重建二叉树class Solution7 { public int pIndex; public TreeNode buildTreeChild(int[] preorder, int[] inorder, int begin, int end) { if (begin > end)原创 2021-08-05 22:56:57 · 95 阅读 · 2 评论 -
18、31、32I、32II、32III、24
剑指offer剑指 Offer 18. 删除链表的节点剑指 Offer 24. 反转链表剑指 Offer 31. 栈的压入、弹出序列剑指 Offer 32 - I. 从上到下打印二叉树剑指 Offer 32 - II. 从上到下打印二叉树剑指 Offer 32 - III. 从上到下打印二叉树剑指 Offer 18. 删除链表的节点 public ListNode deleteNode(ListNode head, int val) { if (head == null)原创 2021-08-02 23:14:56 · 250 阅读 · 0 评论 -
28、36、68
剑指offer剑指 Offer 28. 对称的二叉树剑指 Offer 36. 二叉搜索树与双向链表剑指 Offer 68 - II. 二叉树的最近公共祖先、剑指 Offer 68 - I. 二叉搜索树的最近公共祖先剑指 Offer 28. 对称的二叉树 //1. public boolean isSymmetric(TreeNode root) { if (root == null) return false; return isSymmetricHelpe原创 2021-08-01 22:33:04 · 74 阅读 · 0 评论 -
搜索(四)
搜索17. 电话号码的字母组合401. 二进制手表39. 组合总和17. 电话号码的字母组合public class Solution17 { public static void main17(String[] args) { System.out.println(letterCombinations("23")); } static String[] stringMap = {"", "", "abc", "def", "ghi", "jkl", "mno"原创 2021-07-28 11:55:11 · 275 阅读 · 14 评论 -
多种迭代写法实现二叉树遍历
二叉树迭代遍历思想实现思想利用栈和队列都可以实现树的迭代遍历。递归的写法将这个遍历的过程交给系统的堆栈去实现了,所以思想都是一样的、无非就是插入值的时机不一样。利用栈的先进先出的特点,对于前序遍历、我们可以先将当前的值放进结果集中,表示的是根节点的值、然后将当前的节点加入到栈中、当前的节点等于自己的left、再次循环的时候、也会将left作为新的节点、直到节点为空、也就是走到了树的最左边、然后回退、也就是弹栈、、也可以认为回退的过程是从低向上的、具体就是让当前的节点等于栈弹出的right、继续重复上面的原创 2021-07-27 13:27:23 · 234 阅读 · 12 评论 -
搜索(三)
搜索433.最小基因变化127.单词接龙752. 打开转盘锁433.最小基因变化class Solution433 { static char[] chars = {'A', 'C', 'G', 'T'}; public static int minMutation(String start, String end, String[] bank) { Queue<String> queue = new LinkedList<>();原创 2021-07-22 15:33:27 · 100 阅读 · 0 评论 -
搜索(二)
DFS、BFS130.被围绕的区域200.岛屿数量690.员工的重要性429.N叉树的层序遍历994.腐烂的橘子130.被围绕的区域class Solution130 { int[][] nextP = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}}; public void dfs(char[][] board, int row, int col, int x, int y) { board[x][y] = 'A'; for (i原创 2021-07-20 18:47:44 · 112 阅读 · 1 评论 -
搜索(一)
DFS放牌690.员工的重要性733.图像渲染放牌三个盒子放三张牌1,2,3、找出所有不同的放法 public static void dfs(int index, int n, int[] box, int[] card) { if (index == n + 1) { for (int i = 1; i < box.length; i++) { System.out.print(box[i] + " ");原创 2021-07-17 15:18:16 · 247 阅读 · 2 评论