114. Flatten Binary Tree to Linked List【Medium】【将给定的二叉树转化为“只有右孩子节点”的链表(树)】...
Given a binary tree, flatten it to a linked list in-place.
For example, given the following tree:
1/ \2 5/ \ \ 3 4 6
The flattened tree should look like:
1\2\3\4\5\6
【解析】由上图可知,如果右子树不为空,则右子树最后肯定为左子树最有一个靠右的孩子节点的右子树,而左子树最后成为整棵树的右子树。这样,首先判断左子树是否为空,不为空就寻找到树根的左孩子节点,然后寻找该节点是否有右孩子,如果有继续寻找,直到找到属于叶子节点的右孩子,此时,该节点的右子树“指向”当前树的右子树,并将当前左子树变为树根的右孩子,将整棵树左孩子置为空。最后,根节点“指向”根节点的右孩子,继续上述操作,直到整棵树遍历完即得到结果。
1.首先,将根节点的右子树,连接到根节点的左子树的最右节点,如下图所示:
2.然后将左子树移动到右边,如下图所示:
3.之后,将根节点的右节点 作为 当前的根节点,循环进行。
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/ class Solution {public void flatten(TreeNode root) {while(root != null) {if(root.left != null) {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;}} }
转载于:https://www.cnblogs.com/Roni-i/p/10434572.html
114. Flatten Binary Tree to Linked List【Medium】【将给定的二叉树转化为“只有右孩子节点”的链表(树)】...相关推荐
- LeetCode - Medium - 114. Flatten Binary Tree to Linked List
Topic Tree Depth-first Search Description https://leetcode.com/problems/flatten-binary-tree-to-linke ...
- Leetcode:114. Flatten Binary Tree to Linked List
题目 Given a binary tree, flatten it to a linked list in-place. For example, given the following tree: ...
- Java for LeetCode 114 Flatten Binary Tree to Linked List
Given a binary tree, flatten it to a linked list in-place. For example, Given 1/ \2 5/ \ \3 4 6 The ...
- leetcode [114]Flatten Binary Tree to Linked List
Given a binary tree, flatten it to a linked list in-place. For example, given the following tree: 1/ ...
- 【LeetCode从零单排】No 114 Flatten Binary Tree to Linked List
题目 Given a binary tree, flatten it to a linked list in-place. For example, Given 1/ \2 5/ \ \3 4 6 T ...
- 114. Flatten Binary Tree to Linked List 二叉树展开为链表
给定一个二叉树,原地将它展开为一个单链表. 例如,给定二叉树 1/ \2 5/ \ \ 3 4 6 将其展开为: 1\2\3\4\5\6 前序遍历 将二叉树展开为单链表之后,单链表中的节点顺序即为二叉 ...
- LeetCode: Flatten Binary Tree to Linked List
LeetCode: Flatten Binary Tree to Linked List LeetCode: Flatten Binary Tree to Linked List Given a bi ...
- Flatten Binary Tree to Linked List - LeetCode
目录 题目链接 注意点 解法 小结 题目链接 Flatten Binary Tree to Linked List - LeetCode 注意点 不要访问空结点 val会有负值 解法 解法一:递归,D ...
- [Leetcode] Flatten Binary Tree to Linked List 整平二叉树
Flatten Binary Tree to Linked List Given a binary tree, flatten it to a linked list in-place. For ex ...
最新文章
- srv.sys蓝屏解决补丁_电脑蓝屏重启怎么解决?
- linux搜索过滤器,Unix和Linux管道(pipe)和过滤器(filter)使用介绍
- 扇区示意图计算机组成原理,计算机组成原理本.ppt
- 【问链财经-区块链基础知识系列】 第四十六课 区块链如何作用于医药行业
- css—盒子模型理解
- C语言二分法求最小值解,C语言用二分法求方程的近似解的方法
- 看看高手做的ARM开发板
- c 读取url中的html文本,如何使用Guzzlehttp获取给定url的html内容
- jmeter模拟登陆
- 文本框获取焦点时,去掉边框
- javascript 动画效果(多物体缓冲运动,多物体透明度变化,匀速移入移出、链式运动、同时运动)
- varchar(10)与nvarchar(10)有什么区别
- java ascii加密_Java 字符加密
- 光纤跳线接口_一文了解光纤配线架、光纤跳线、耦合器、收发器及光纤色谱顺序...
- 哥德巴赫猜想-中文维基百科
- UG NX二次开发(C#)-装配-替换组件
- 笔记本电脑更换固态硬盘方法
- 白盒/黑盒/灰盒测试的区别
- 如何快速转载CSDN中的博客2018年针对最新csdn
- WordPress未能连接到FTP服务器 xxxxxxx:21
热门文章
- 深度学习《CNN架构续篇 - 梯度下降的优化》
- PRML-系列一之1.2.4
- [机器学习-sklearn]数据预处理要点总结
- hadoop java配置环境变量_hadoop2.7.2修改配置文件,配置linux java环境变量
- 使用deeplearning4j训练Doc2Vec(文档向量)
- Multi-thread提高C++性能的编程技术笔记:单线程内存池+测试代码
- Wiz Editor md 为知笔记 Markdown 插件
- SpringMVC 文件上传及下载
- HTML,CSS,JavaScript学习笔记--导航
- Java实战-坦克大战