leetcode 114. 二叉树展开为链表

2023.10.22

本题第一反应就是将 原二叉树的节点值 用先序遍历的方式保存到一个集合数组中。然后再重新构造出新的二叉树。 java代码如下:

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 {
    private List<Integer> list = new ArrayList<>();
    private void preTravelsal(TreeNode cur){
        if(cur == null) return;
        list.add(cur.val);
        preTravelsal(cur.left);
        preTravelsal(cur.right);
    }
    public void flatten(TreeNode root) {
        if(root == null) return;
        preTravelsal(root);
        for(int i=1; i<list.size(); i++){
            root.right = new TreeNode(list.get(i));
            root.left = null;
            root = root.right;
        }
    }
}
相关推荐
OPEN-F3 分钟前
ROS2系列教程:Gazebo插件(关节控制/IMU/激光雷达)
c++·python·数码相机·算法·机器人
luj_176811 分钟前
虚实交融中的真实人物塑造
c语言·开发语言·网络·经验分享·算法
haolin123.40 分钟前
STL vector底层揭秘:从构造到迭代器失效
开发语言·c++·算法
shehuiyuelaiyuehao1 小时前
算法37,位运算,两个整数之和(不用+符号)
算法
猎头南楼1 小时前
MFC 质量流量控制器中的控制算法设计与落地思考
人工智能·算法
来一碗刘肉面1 小时前
平衡二叉树的删除
数据结构·算法
wabs6661 小时前
关于二叉树【力扣199.二叉树的右视图的思考】
数据结构·c++·算法·leetcode·二叉树·层序遍历
a187927218311 小时前
【算法】动态规划第三篇:背包第一课——贪心之死与正序倒序开关
算法·leetcode·动态规划·贪心·dp·暴力·算法讲解
黄金龙PLUS1 小时前
Xoodoo置换算法的优缺点
算法·网络安全·密码学·哈希算法·同态加密
Cccp.1231 小时前
【leetcode】(四)排序算法汇总和链表
leetcode·链表·排序算法