当前位置: 首页 > article >正文

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

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

/**
 * 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);
    }
}

http://www.kler.cn/a/589264.html

相关文章:

  • uniapp-x 之useAttrs只读
  • C++ std::list超详细指南:基础实践(手搓list)
  • 【CSS】二、浏览器调试与文字样式
  • 计算机网络笔记再战——理解几个经典的协议HTTP章4
  • Excel(函数篇):COUNTIF与CONUTIFS函数、SUMIF与SUMIFS函数、ROUND函数、MATCH与INDEX函数、混合引用与条件格式
  • 使用 Theos 开发 iOS 应用(IPA)记事本
  • 【NLP】 6. 词向量的可变性及其影响
  • DeepSeek本地部署 (Windows+Ollama+Docker Desktop+ RAGFlow)
  • VSTO(C#)Excel开发10:启动和卸载顺序 事件处理 监视变化
  • 蓝桥杯备考:模拟+堆 ---接水问题
  • Unity 封装一个依赖于MonoBehaviour的计时器(下) 链式调用
  • 【新人系列】Golang 入门(五):集合类型 - 下
  • Docker系列——从零开始打包FunASR的Http服务
  • Nuxt3 使用 ElementUI Plus报错问题
  • Android之Sentry接入
  • 在 Windows 11 上使用 PyCharm 创建一个 Flask 项目,并使用 `pipenv` 进行虚拟环境管理
  • HarmonyOS NEXT 声明式UI语法学习笔记-创建自定义组件
  • 麒麟服务器操作系统QT系列软件工具手册
  • AD9850函数信号发生器制作(全套资料)
  • RK3568 android11 基于PN7160的NXP NFC移植