
Leedcode
Leedcode题解
皮蛋咸鱼白菜粥
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leedcode 851. Loud and Rich 拓扑排序+深搜+截枝
解题思路: 1.构建邻接表,从起点开始构造,后面的结点都比它富有,并记录富结点的入度 2.以最穷的点为起点深搜(即入度为0的结点,递归求所有比他富的结点最安静的值) 3.截肢:搜索完成的结点可以直接使用,用v来记录 class Solution { List<List<Integer>> edges = new ArrayList<>(); int d[]; boolean v[]; int ans[]; public i原创 2021-12-15 10:55:11 · 607 阅读 · 0 评论 -
Leedcode144. Binary Tree Preorder Traversal二叉树的先序遍历遍历(递归,迭代,Morris,线索化)
1.先序 递归: public void dfs(TreeNode root, List<Integer> list){ if(root != null){ list.add(root.val); dfs(root.left,list); dfs(root.right,list); } } 迭代: public List<Integer> preorderTra原创 2021-12-07 16:15:23 · 357 阅读 · 0 评论 -
Leetcode 114. Flatten Binary Tree to Linked List 先序线索化
解法:对树进行先序线索化 情况1:若有左孩子,找到左子树先序遍历最后一个结点,链接到右孩子上,调整当前结点(当前结点的右孩子赋值为左孩子,左孩子置空,进入右孩子(原来的左孩子)),当遍历到左子树的最后一个结点时,可以通过先前建立的链接找到下一个结点 情况2:无左孩子,直接进入右孩子,直到为空 代码: public void flatten(TreeNode root) { TreeNode link = null; while (root!=null){ .原创 2021-12-10 10:47:08 · 311 阅读 · 0 评论