LeetCode 114. 二叉树展开为链表

更多题解尽在 https://sugar.matrixlab.dev/algorithm 每日更新。

组队打卡,更多解法等你一起来参与哦!

LeetCode 114. 二叉树展开为链表 ,难度中等

DFS

解题思路:先用 DFS 遍历二叉树,将树的结果存放在 List 中,然后更新原先的二叉树。

Java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public void preorderTraversal(List<TreeNode> traList, TreeNode root) {
        if (root == null) {
            return;
        }
        traList.add(root);
        preorderTraversal(traList, root.left);
        preorderTraversal(traList, root.right);
    }

    public void flatten(TreeNode root) {
        List<TreeNode> traList = new ArrayList<>();
        preorderTraversal(traList, root);
        TreeNode temp = root;
        for (int i = 1; i < traList.size(); ++i) {
            temp.right = traList.get(i);
            temp.left = null;
            temp = temp.right;
        }
    }
}
相关推荐
三84423 分钟前
webshell缓存绕过/哈希碰撞
算法·哈希算法
致Great7 小时前
Pi 的上下文压缩,到底是怎么工作的?
算法
watersink8 小时前
机器学习聚类算法
算法·机器学习·聚类
luj_17689 小时前
桥牌思维启示:系统设计的模块化架构
c语言·开发语言·c++·经验分享·算法
饼饼学习空间智能11 小时前
家庭服务机器人训练数据怎么积累?仿真、真实采集与持续学习的技术路线分析
人工智能·算法·机器学习
蛋先生DX12 小时前
你瘦不下来但大模型可以:量化原理了解一下
深度学习·算法·llm
Scabbards_12 小时前
面试Leetcode - Heap 堆
java·leetcode·面试
牛阿大13 小时前
LQR算法
算法
(╹◡╹)14 小时前
18.剪枝
算法·机器学习·剪枝