【leetcode hot 100 114】二叉树展开为链表

解法一:执行一次先序遍历,把元素放入list中,然后放回root中

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 {
    List<TreeNode> list = new ArrayList<>();

    public void flatten(TreeNode root) {
        // 执行一次先序遍历,把元素放入list中,然后放回root中
        preorder(root);
        TreeNode pre = root;
        for(int i=1;i<list.size();i++){
            pre.right = list.get(i);
            pre.left = null;
            pre = pre.right;
        }
    }

    public void preorder(TreeNode root){
        if(root==null){
            return;
        }
        list.add(root);
        preorder(root.left);
        preorder(root.right);
    }
}
相关推荐
Wect1 分钟前
LeetCode 4. 寻找两个正序数组的中位数:二分优化思路详解
前端·算法·typescript
ZPC82105 分钟前
moveitcpp 没办法执行的问题
人工智能·pytorch·算法·机器人
智者知已应修善业7 分钟前
【C++非递归剪枝问题凑钱方案数】2024-7-18
c语言·c++·经验分享·笔记·算法·剪枝
Yolo_TvT9 分钟前
C++:缺省参数
开发语言·c++·算法
进击的小头12 分钟前
第19篇:多个PI控制器串联控制系统设计与参数整定调试实战
python·算法
承渊政道13 分钟前
【优选算法】(实战领略前缀和的真谛)
开发语言·数据结构·c++·笔记·学习·算法
Jul1en_18 分钟前
Java 集合判空方法对比
java·spring boot·算法·spring
handsomethefirst27 分钟前
【算法与数据结构】【面试经典150题】【题46-题50】
数据结构·算法·面试
lcj251130 分钟前
蓝桥杯C++:算法1:高精度
c++·算法·蓝桥杯
宵时待雨1 小时前
C++笔记归纳15:封装map & set
开发语言·数据结构·c++·笔记·算法