java二叉树转换为链表_leetcode刷题笔记-114. 二叉树展开为链表(java实现)

leetcode刷题笔记-114. 二叉树展开为链表(java实现)

题目描述

给你二叉树的根结点 root ,请你将它展开为一个单链表:

展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。

展开后的单链表应该与二叉树 先序遍历 顺序相同。

示例 1:

?

输入:root = [1,2,5,3,4,null,6]

输出:[1,null,2,null,3,null,4,null,5,null,6]

示例 2:

输入:root = []

输出:[]

示例 3:

输入:root = [0]

输出:[0]

提示:

树中结点数在范围 [0, 2000] 内

-100 = Node.val = 100

来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list

解题思路

1)把左子树和右子树拉平

2)左子树放到右子树位置,然后把右子树放到左子树下方

参考来源:https://labuladong.gitbook.io/algo/shu-ju-jie-gou-xi-lie/shou-ba-shou-shua-er-cha-shu-xun-lian-di-gui-si-wei/er-cha-shu-xi-lie-1

解题代码

/**

* 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 left = root.left;

TreeNode right = root.right;

root.left = null;

root.right = left;

//把右子树挂在调整的链后边

TreeNode p = root;

while(p.right != null) {

p = p.right;

}

p.right = right;

}

}

点击并拖拽以移动

leetcode刷题笔记-114. 二叉树展开为链表(java实现) 相关文章

leetcode刷题笔记-116. 填充每个节点的下一个右侧节点指针(java实现)

题目描述 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节

leetcode刷题笔记-226. 翻转二叉树(java实现)

题目描述 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/invert-binary-tree 解题思路 经过观察,把二叉树的左右子节点进行交换,所有子节点

吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 节点特性

介绍一下 zookeeper 的节点特性和简单使用场景,正是由于这些节点特性的存在使 zookeeper 开发出不同的场景应用。 1、同一级节点 key 名称是唯一的实例:$ ls /$ create /runoob 2 2、创建节点时,必须要带上全路径实例:$ ls /runoob$ create /runoob/child

吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 四字命令

zookeeper 支持某些特定的四字命令与其交互,用户获取 zookeeper 服务的当前状态及相关信息,用户在客户端可以通过 telenet 或者 nc(netcat) 向 zookeeper 提交相应的命令。安装 nc 命令:$ yum install nc # centos或$ sudo apt install netcat # ubuntu

吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper Java 客户端搭建

使用的 IDE 为 IntelliJ IDEA,创建一个 maven 工程,命名为 zookeeper-demo,并且引入如下依赖,可以自行在maven中央仓库选择合适的版本,介绍原生 API 和 Curator 两种方式。 dependency groupIdjunit/groupId artifactIdjunit/artifactId version4.11/ver

吴裕雄--天生自然 Zookeeper学习笔记--ZooKeeper 数据模型 znode 结构详解

数据模型在 zookeeper 中,可以说 zookeeper 中的所有存储的数据是由 znode 组成的,节点也称为 znode,并以 key/value 形式存储数据。整体结构类似于 linux 文件系统的模式以树形结构存储。其中根路径以 / 开头。进入 zookeeper 安装的 bin 目录,通过sh zk

吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 安装配置

Linux 安装zookeeper 下载地址为: https://zookeeper.apache.org/releases.html。 打开网址 https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz,看到如下界面: 选择一个下载地址,使用 wget 命令下载并安装:$ wg

redis6.0.5之zset阅读笔记4--压缩列表(ziplist)排序集相关API

***********************************************************************************************获取压缩链表中节点的数值double zzlGetScore(unsigned char *sptr) { unsigned char *vstr; unsigned int vlen; long long vlong; char buf[128]; double

吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper linux 服务端集群搭建步骤

所需准备工作,创建三台虚拟机环境并安装好 java 开发工具包 JDK,可以使用 VM 或者 vagrant+virtualbox 搭建 centos/ubuntu 环境,本案例基于宿主机 windows10 系统同时使用 vagrant+virtualbox 搭建的 centos7 环境,如果直接使用云服务器或者物理机同理。

算法刷题及总结_数组篇

二分法 //算法总结//第一部分:数组相关/***Leetcode题目35:搜索插入位置*给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。*示例 1:*输入: [1,3,5,6], 5*输出: 2**示例 2:*输入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/417313.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EJB是什么?EJB的概念分析与理解(copy)

【说明:转载于http://blog.csdn.net/jojo52013145/article/details/5783677】 1. 我们不禁要问,什么是"服务集群"?什么是"企业级开发"? 既然说了EJB 是为了"服务集群"和"企业级开发"&…

adb需要安装java吗_jdk和adb配置及电脑装爽系统心得

1.双系统安装我选择安装的windows10和Linux Mint 18.2索尼娅首先我们需要先安装win10,可以采用360压缩直接见将win10镜像解压到u盘当做系统盘使用(lInux也是一样)安装WIndows系统大家应该都会我主要说一下关于lInux的安装首先如果我们有固态硬盘的化可以考虑将其分成…

如何用JavaScript判断dom是否有存在某class的值?

例如&#xff1a; <html class"no-js"> <head> </head> <body> </body> </html> 判断html节点的class是否有no-js。 1.jquery的实现方式 $("html").hasClass(no-js); jquery源码的实现方式&#xff1a; var rclass /…

SQLite shell操作

>sqlite3 E:/Data/test.db创建或连接已有数据库>.help 帮助>.tables 所有表>.databases 当前挂的所有数据库>select * from A limit 3; 查询语句

centos 7用ss命令来查看端口占用和对应进程

mysqld进程在监听4567端口&#xff0c;进程id是2593&#xff1a; # ss -lnp|grep 4567 tcp LISTEN 0 128 :4567 :* users:(("mysqld",2593,11)) 2593的父进程是2592&#xff1a; # ps -ef|grep 2593 mysql 2593 2592 0 04:46 ? 00:00:57 /usr/libexec/mysqld --wsre…

java 分批同时处理_java中List集合分批处理

在项目中存在list集合数据量过大&#xff0c;需要对这个list集合进行分批处理&#xff0c;自己写了一个list分批处理的一个算法&#xff1a;package com.lv.huizhong.demo;import java.util.ArrayList;import java.util.List;public class ListSplit {public static void main(…

C# IIS ManagementException: 访问遭到拒绝

ManagementException: 访问遭到拒绝原理&#xff1a;页面&#xff08;与IIS有关&#xff09;运行的权限低于DLL运行的权限&#xff0c;估计是微软考虑到什么黑客会利用此漏洞而设计的。只要在Global里或httpModules把这个值获取就没问题。实时获取CPU内存情况可以在Global中每隔…

Linux下出现ping:unknown host xxx.xxx问题的解决办法

如果ping域名的时候出现ping:unknown host xxx.xxx 但是ping IP地址的时候可以通的话 可知是dns服务器没有配置好&#xff0c; 查看一下配置文件/etc/resolv.conf&#xff0c;里面是否有nameserver xxx.xxx.xxx.xxx&#xff0c;比如使用dns服务器 nameserver 8.8.8.8&#xff…

java中的基本数据类型和运算符_【Java基础】基本数据类型和运算符

基本数据类型&#xff1a;数值型&#xff1a;整型&#xff1a;① byte&#xff0c;1byte 8bit(8位)&#xff0c;储存是有符号的&#xff0c;以二进制补码表示的整数。最小值为-128&#xff0c;最大值为127&#xff0c;默认值为0。byte在大型数组中可以显著的节约空间&#xff…

Eclipse Java EE 开发 Web 应用程序

1.创建Web项目 File->New->Dynamic Web ProjectProject Name输入项目名称Target runtime->New Runtime 选择Apache Tomcat v7.0->Next->Tomcat installation directory 输入Tomcat解压根目录->FinishNext->Next->Finish2.创建ServerServer视窗->New…

开启Mysql远程登录账号

1.确定服务器上的防火墙没有阻止 3306 端口。 2.增加允许远程连接 MySQL 用户并授权。grant all PRIVILEGES on *.* to root% identified by localhost; flush privileges;grant all PRIVILEGES on discuz.* to ted123.123.123.123 identified by 123456;上面的语句表示将 disc…

测试架构师

转载自&#xff1a;http://blog.163.com/tech_qa/blog/static/130176349200991611173682/ 在测试行业干了有些年了&#xff0c;现在中国带领一个测试架构师团队。回想当年干了一年软件测试后&#xff0c;发现在中国几乎没有什么软件测试的招聘信息&#xff0c;感到未来的迷茫。…

ie直接编辑网页

在ie地址栏中输入javascript:void function(){document.body.contentEditabletrue;document.designModeon}();

加载中动画

利用的是边框切圆<style>.box {width: 80px; height: 60px;margin: 200px;padding: 80px 150px;position: relative;}.box div {width: 80px; height: 80px;border-radius: 50%;/*background: blue;*/border: 5px solid rgba(255, 255, 255, 0.5);position: absolute;bor…

java map集合 事务控制_对象回收过程?线程池执行过程? map原理?集合类关系?synchronized 和 volatile ? 同一个类的方法事务传播控制还有作用吗?java 锁...

1. 对象回收过程&#xff1f;可达性分析算法&#xff1a; 如果一个对象从 GC Roots 不可达时&#xff0c;则证明此对象不可用。 通过一系列称为GC ROOTS的对象作为起点&#xff0c;从这些起点往下搜索&#xff0c;搜索走过的路径称为引用链&#xff0c;当一个对象到GC ROOTS 没…

ie当前正在禁用加载项的状态下运行,要管理或删除加载项

右击快捷方式——属性 目标栏中删除后面的 “-xxx”参数

swift上传图片

import UIKit import AFNetworkingclass YJRequest: NSObject {//#pragma mark - 上传图片 func uploadImageWithImage(_ imageData: Data){let sessionConfiguration URLSessionConfiguration.defaultlet manager AFHTTPSessionManager(sessionConfiguration: sessionConfi…

mysql数据库的注释语句是_coding++ :MySQL 使用 SQL 语句查询数据库所有表注释已经表字段注释...

1、要查询数据库 "mammothcode" 下所有表名以及表注释/*查询数据库 ‘mammothcode’ 所有表注释*/SELECT TABLE_NAME,TABLE_COMMENT FROM information_schema.TABLES WHERE table_schemamammothcode;2、要查询表字段的注释/*查询数据库 ‘mammothcode’ 下表 ‘t_adm…