![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
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 · 562 阅读 · 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 · 314 阅读 · 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 · 251 阅读 · 0 评论