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

Accepted
218,918

Submissions
533,947

【解析】由上图可知,如果右子树不为空,则右子树最后肯定为左子树最有一个靠右的孩子节点的右子树,而左子树最后成为整棵树的右子树。这样,首先判断左子树是否为空,不为空就寻找到树根的左孩子节点,然后寻找该节点是否有右孩子,如果有继续寻找,直到找到属于叶子节点的右孩子,此时,该节点的右子树“指向”当前树的右子树,并将当前左子树变为树根的右孩子,将整棵树左孩子置为空。最后,根节点“指向”根节点的右孩子,继续上述操作,直到整棵树遍历完即得到结果。

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】【将给定的二叉树转化为“只有右孩子节点”的链表(树)】...相关推荐

  1. LeetCode - Medium - 114. Flatten Binary Tree to Linked List

    Topic Tree Depth-first Search Description https://leetcode.com/problems/flatten-binary-tree-to-linke ...

  2. 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: ...

  3. 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 ...

  4. 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/ ...

  5. 【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 ...

  6. 114. Flatten Binary Tree to Linked List 二叉树展开为链表

    给定一个二叉树,原地将它展开为一个单链表. 例如,给定二叉树 1/ \2 5/ \ \ 3 4 6 将其展开为: 1\2\3\4\5\6 前序遍历 将二叉树展开为单链表之后,单链表中的节点顺序即为二叉 ...

  7. LeetCode: Flatten Binary Tree to Linked List

    LeetCode: Flatten Binary Tree to Linked List LeetCode: Flatten Binary Tree to Linked List Given a bi ...

  8. Flatten Binary Tree to Linked List - LeetCode

    目录 题目链接 注意点 解法 小结 题目链接 Flatten Binary Tree to Linked List - LeetCode 注意点 不要访问空结点 val会有负值 解法 解法一:递归,D ...

  9. [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 ...

最新文章

  1. srv.sys蓝屏解决补丁_电脑蓝屏重启怎么解决?
  2. linux搜索过滤器,Unix和Linux管道(pipe)和过滤器(filter)使用介绍
  3. 扇区示意图计算机组成原理,计算机组成原理本.ppt
  4. 【问链财经-区块链基础知识系列】 第四十六课 区块链如何作用于医药行业
  5. css—盒子模型理解
  6. C语言二分法求最小值解,C语言用二分法求方程的近似解的方法
  7. 看看高手做的ARM开发板
  8. c 读取url中的html文本,如何使用Guzzlehttp获取给定url的html内容
  9. jmeter模拟登陆
  10. 文本框获取焦点时,去掉边框
  11. javascript 动画效果(多物体缓冲运动,多物体透明度变化,匀速移入移出、链式运动、同时运动)
  12. varchar(10)与nvarchar(10)有什么区别
  13. java ascii加密_Java 字符加密
  14. 光纤跳线接口_一文了解光纤配线架、光纤跳线、耦合器、收发器及光纤色谱顺序...
  15. 哥德巴赫猜想-中文维基百科
  16. UG NX二次开发(C#)-装配-替换组件
  17. 笔记本电脑更换固态硬盘方法
  18. 白盒/黑盒/灰盒测试的区别
  19. 如何快速转载CSDN中的博客2018年针对最新csdn
  20. WordPress未能连接到FTP服务器 xxxxxxx:21

热门文章

  1. 深度学习《CNN架构续篇 - 梯度下降的优化》
  2. PRML-系列一之1.2.4
  3. [机器学习-sklearn]数据预处理要点总结
  4. hadoop java配置环境变量_hadoop2.7.2修改配置文件,配置linux java环境变量
  5. 使用deeplearning4j训练Doc2Vec(文档向量)
  6. Multi-thread提高C++性能的编程技术笔记:单线程内存池+测试代码
  7. Wiz Editor md 为知笔记 Markdown 插件
  8. SpringMVC 文件上传及下载
  9. HTML,CSS,JavaScript学习笔记--导航
  10. Java实战-坦克大战