package org.example; import java.util.ArrayList; import java.util.Collections; import java.util.List; class Solution { public void flatten(TreeNode root) { // 前序遍历二叉树 List<TreeNode> traversal = preorderTraversal(root); // 修改结点的 left 域和 right 域 for (int i = 0; i < traversal.size(); i++) { if (i == traversal.size() - 1) { // 将最后一个结点的 left 域和 right 域都置空 TreeNode treeNode = traversal.get(traversal.size() - 1); treeNode.left = null; treeNode.right = null; } else { // 获取当前结点 TreeNode treeNode = traversal.get(i); // left 域置空 treeNode.left = null; // right 域指向下一个结点 treeNode.right = traversal.get(i + 1); } } } /** * 二叉树的前序遍历 * * @param root 二叉树的根结点 * @return 前序遍历结果 */ private List<TreeNode> preorderTraversal(TreeNode root) { if (root == null) { return Collections.emptyList(); } // 前序遍历结果 List<TreeNode> traversal = new ArrayList<>(); // 前序遍历 traversal.add(root); traversal.addAll(preorderTraversal(root.left)); traversal.addAll(preorderTraversal(root.right)); return traversal; } }114.二叉树展开为链表
张小明
前端开发工程师
探秘Java微服务:短视频社交源码问答圈全解析
短视频社交源码的“暗坑”:90%创业者栽过的技术雷区最近跟几个做社交产品的朋友聊天,发现大家都在吐槽同一个问题:“明明想做个短视频问答的社区,结果源码买回来不是卡顿就是崩溃,用户量刚到1万就撑不住了!…
WMS 仓库管理系统核心功能模块全景图
该内容来自与AI的沟通,因为最近在参与人防门的项目,所以内容适配人防门行业。(一)基础数据管理模块(系统基石)物料主数据:管理钢板、型钢、密闭胶条、人防锁具等物料信息,支持批次 /…
前端表单处理新方法:别再用传统表单了
前端表单处理新方法:别再用传统表单了 什么是前端表单处理新方法? 前端表单处理新方法是指在前端开发中,随着技术的发展,出现的新的表单处理技术和方法。别以为表单处理只是获取输入值,那是十年前的玩法了。 为什么需要…
AAAI认证! Transformer+多模态融合2026仍是王炸,持续狂揽顶会
最近回顾了多模态相关的研究,这领域实在太火了,如果还想快速上手、快速出成果,那我推荐做Transformer多模态融合,这是目前对新手最友好的热点方向之一。至于具体方向和创新点?根据发展趋势和最近的成果来看,…
Linux系统移植
个人学习记录STM32MP157开发板,它是A7核M4核的系统移植:通过TF卡移植步骤:1.Ubuntu识别TF卡1.1TF插入读卡器,再装在电脑上,选择连接位置为虚拟机.2找到TF在系统中的位置ls /dev/sdUbuntu中磁盘类设备 也叫块设备 , 都…
TUM RGBD数据集工具链全解析:从associate.py到evaluate_ate.py,让你的SLAM评测更高效
TUM RGBD数据集工具链实战指南:从数据对齐到精度评估的完整流程 在视觉SLAM研究领域,TUM RGBD数据集因其丰富的场景和精确的基准轨迹而成为算法验证的黄金标准。但许多研究者在初次接触这套数据集时,往往会被其复杂的工具链和评估流程所困扰。…