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;
        }
    }
}

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

相关推荐
ly76894 分钟前
PostgreSQL 备份恢复策略:pg_basebackup、WAL 归档与 PITR 在企业 Java 系统中的落地
java·数据库·postgresql·pitr·pg_basebackup·wal 归档
摇滚侠5 分钟前
Java 中如何表示负数,有符号和无符号的区别,补码的计算规则,char byte short int long 的范围
java·开发语言
OPEN-F20 分钟前
ROS2系列教程:上位机建图与导航(原理综合)
算法·机器人
weixin_3077791321 分钟前
C++代码实现MATLAB中的fitrtree函数功能
开发语言·c++·算法·matlab
奇牙coding33 分钟前
Codex CLI 升级后多文件编辑静默失效:config.yaml 枚举变更排查与修复指南
java·前端·javascript·ai
爱读书的小胖37 分钟前
Codewars:Rot13(C)解题分析
c语言·开发语言
tomwang032237 分钟前
路径优化建模、优化算法分类及工程化小结
算法·数学建模·分类
小羊没烦恼!39 分钟前
Ajax与JSON的一些总结
android·java·前端·数据库·mysql·算法·okhttp
鸽鸽程序猿41 分钟前
【项目】【在线判题系统】b端题目增删改
开发语言·python
Lhappy嘻嘻1 小时前
读懂 JVM:内存模型、类加载机制、分代回收
java·开发语言·jvm