day49(12.30)——leetcode面试经典150

114. 二叉树展开为链表

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) {
        while(root != null) {
            //左子树为null,直接考虑下一节点
            if(root.left == null) {
                root = root.right;
            }
            else {
                //找到左子树最右边的结点
                TreeNode pre = root.left;
                while(pre.right != null) {
                    pre = pre.right;
                }
                //将原来的右子树接到左子树的最右边结点
                pre.right = root.right;
                root.right = root.left;
                root.left = null;
                root = root.right;
            }
        }
    }
}
相关推荐
程序员爱钓鱼2 小时前
Go排序核心库: sort包深度指南
后端·面试·go
dapeng28702 小时前
分布式系统容错设计
开发语言·c++·算法
qq_417695052 小时前
代码热修复技术
开发语言·c++·算法
hpoenixf8 小时前
2026 年前端面试问什么
前端·面试
Liu628888 小时前
C++中的工厂模式高级应用
开发语言·c++·算法
AI科技星9 小时前
全尺度角速度统一:基于 v ≡ c 的纯推导与验证
c语言·开发语言·人工智能·opencv·算法·机器学习·数据挖掘
参.商.9 小时前
【Day41】143. 重排链表
leetcode·golang
条tiao条9 小时前
KMP 算法详解:告别暴力匹配,让字符串匹配 “永不回头”
开发语言·算法
干啥啥不行,秃头第一名10 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
RainyJiang10 小时前
谱写Kotlin协程面试进行曲-进阶篇(第二乐章)
面试·kotlin·android jetpack