LeetCode: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) {
        TreeNode curr = root;

        while(curr != null){
            //只有左子树存在的时候才需要移接
            if(curr.left != null){
                //在左子树中找最右下角节点
                TreeNode pre = curr.left;
                while(pre.right != null){
                    pre = pre.right;
                }

                pre.right = curr.right;

                curr.right = curr.left;
                curr.left = null;
            }
            curr = curr.right;
        }
    }
}

做的过程中对照代码画图更好理解。

相关推荐
爱笑的源码基地2 分钟前
智慧工地源码, 智慧工地环境监测系统架构与绿色施工闭环设计
java·源码·智慧工地·绿色工地
GeekZHR3 分钟前
C语言指针2:数组名、二级指针、指针数组,一次把“指针和数组“讲透
c语言·数据结构·算法·指针
h_a_o777oah6 分钟前
【算法基础】卡特兰数:递推定义与折线对称公式推导及解题策略
c++·算法·acm·组合数学·卡特兰数·反射原理·动态规划dp
YDS8297 分钟前
大营销平台 —— 第二阶段应用接口实现
java·spring boot·ddd
zlinear数据采集卡8 分钟前
数据采集卡从入门到精通(7):流水线型ADC——级级接力,高速与高精的平衡术
开发语言·arm开发·嵌入式硬件·fpga开发·c#
一水12 分钟前
AI 时代审查思维:审查第一篇
java·jvm·数据库·spring
JAI科研14 分钟前
Deepseek Agent Harness教程(二) | DeepSeek Harness 设计思路
人工智能·深度学习·算法·机器学习·自然语言处理·transformer·vllm
还不秃顶的计科生20 分钟前
具身智能论文学习10:π0: A Vision-Language-Action Flow Model for General Robot Control
人工智能·深度学习·算法·机器学习·语言模型·vla·vlm
Dr.kangder23 分钟前
嵌入式面试总结(二十一)——C语言关键字
c语言·开发语言·面试·职场和发展·架构·虚拟化
happyprince27 分钟前
02-具体观 — Cordis 算法与实现剖析
算法