力扣hot100 - 114、二叉树展开为链表

题目:思路一:通过先序遍历将元素放到一个数组中,再去遍历数组同时构造一棵二叉树。

代码略

思路二:先递归地把左子树展开为一个链表,再记录一下右子树,左子树移到右子树位置,把记录的右子树放到左子树右节点。

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 flatten(TreeNode root) {
        if(root == null){
            return;
        }
        flatten(root.left);
        flatten(root.right);
        TreeNode trmp = root.right;
        root.right = root.left;
        root.left = null;
        TreeNode cur = root;
        while(cur != null){
             if( cur.right == null){
                cur.right = trmp;
                break;
            }
            cur = cur.right;
        
        }
        return;
    }
}
相关推荐
米尔的可达鸭1 小时前
深入操作系统 Socket 底层:套接字控制块、FD映射、阻塞IO核心完整实现
arm开发·数据结构·websocket·网络协议·算法·架构·安全架构
tachibana21 小时前
hot100 课程表(207)
java·数据结构·算法·leetcode
神仙别闹1 小时前
编写基于C++ Huffman 算法的无损压缩程序和解压程序
java·c++·算法
大鱼>1 小时前
宠物活动轨迹追踪系统:GPS/BDS+UWB+BLE多定位融合方案
人工智能·深度学习·算法·iot·宠物
旖-旎2 小时前
《LeetCode 646 最长数对链 || LeetCode 1143 最长公共子序列》
c++·算法·leetcode·动态规划
Frostnova丶2 小时前
(15)LeetCode 189. 轮转数组
数据结构·算法·leetcode
罗超驿2 小时前
6.Java LinkedList深度解析:从链表原理到源码实践
java·开发语言·链表
Lumos1862 小时前
故障保护与鲁棒性(十七)
算法
手写码匠3 小时前
从零实现大模型推理引擎:Continuous Batching 与动态调度系统深度解析
人工智能·深度学习·算法·aigc
wabs6663 小时前
关于单调栈【力扣503.下一个更大元素II的思考】
算法·单调栈