题目链接:力扣​​​​​​

思路:递归

递归函数声明:

 void flatten(TreeNode* root);

递归出口:

如果根节点为空,返回(不操作)

如果只有根节点,返回 (不操作)

递归体:

把左子树展开成单链表,根节点指向左孩子节点,把右子树展开成单链表

左子树单链表的尾结点指向右子树的头结点(左子树不为空)

当左子树为空时,根节点直接指向右子树展开的单链表的头结点

class Solution {
public:void flatten(TreeNode* root) {
if(root==NULL||!root->left&&!root->right)
{return;
}
TreeNode *l=root->left;flatten(l);
TreeNode *r=root->right;
flatten(r);
root->left=NULL;
root->right=l;
TreeNode *p=l;
if(p)
{
while(p->right)
{p=p->right;
}p->right=r;
}
else
{root->right=r;
}return ;}
};

LeetCode 114 二叉树展开为链表相关推荐

  1. LeetCode 114. 二叉树展开为链表(递归)

    1. 题目 给定一个二叉树,原地将它展开为链表(右侧路径). 例如,给定二叉树1/ \2 5/ \ \ 3 4 6 将其展开为:1\2\3\4\5\6 来源:力扣(LeetCode) 链接:https ...

  2. Leetcode 114.二叉树展开为链表

    Time: 20190901 Type: Medium 题目描述 给定一个二叉树,原地将它展开为链表. 例如,给定二叉树 1/ \2 5/ \ \ 3 4 6 将其展开为: 1\2\3\4\5\6 来 ...

  3. Leetcode 114. 二叉树展开为链表 解题思路及C++实现

    解题思路: 使用递归的方法.根结点的左子树中,最右边的节点是左子树成为链表后的最后一个节点,找到这个节点,然后把这个节点的右节点指向根结点的右子树,同时,将根结点右子节点指向其左子节点,根结点的左子节 ...

  4. 【LeetCode】【HOT】114. 二叉树展开为链表(原地置换)

    [LeetCode][HOT]114. 二叉树展开为链表 文章目录 [LeetCode][HOT]114. 二叉树展开为链表 package hot;import java.util.ArrayLis ...

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

    leetcode刷题笔记-114. 二叉树展开为链表(java实现) 题目描述 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 rig ...

  6. 力扣114. 二叉树展开为链表(C++,解释一下别人的思路)

    题目链接: 114. 二叉树展开为链表 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/flatten-binary- ...

  7. 114. 二叉树展开为链表 golang

    114. 二叉树展开为链表 给定一个二叉树,原地将它展开为链表. 例如,给定二叉树 1/ \2 5/ \ \ 3 4 6 将其展开为: 1\2\3\4\5\6 Code /*** Definition ...

  8. leetocde —— 114. 二叉树展开为链表

    给定一个二叉树,原地将它展开为链表. 例如,给定二叉树 -------- 解题思路:借鉴windliang发布在leetcode题解上的第一个思路,利用先序遍历,将二叉树展开成一个链表. 将左子树插入 ...

  9. 【LeetCode笔记】114. 二叉树展开为链表(Java、递归)

    文章目录 题目描述 解法 & 思路 思路一 思路二 题目描述 我佛了,这道题挺描述不明的,有坑,过不了oj建议马上看评论 or 题解 解法 & 思路 思路一 代码就不贴了,过不去 先序 ...

最新文章

  1. 20175320 2018-2019-2 《Java程序设计》第2周学习总结
  2. HDU5446:Unknown Treasure——题解
  3. 【机器学习基础】Python机器学习入门指南(全)
  4. gsettings命令使用简介
  5. CYQ.Data 数据框架 V4.0 开源版本发布(源码提供下载,秋色园V2.5版本标配框架)
  6. git flow使用
  7. 配置管理计划的主要内容有哪些?
  8. 分享2个java j2ee培训的ppt
  9. Oracle中文乱码
  10. 【鸿蒙】鸿蒙App应用-《记账软件》开发步骤
  11. WINRAR 4.00版注册方法
  12. 死灰复燃的ThinkPad SL400 同机型与同问题可参考!也可帮忙排错!
  13. python stdin stdout_Python子进程:给出stdin,读取stdout,然后给出更多stdin
  14. zabbix 监控下载安装
  15. SpringMVC简介及第一个MVC程序
  16. 华为android10手机指纹,华为P10这些指纹功能你知道几个?
  17. java和dba哪个好_你的性格适合做DBA吗?面试者必看
  18. gitlab rpm包安装方法
  19. go语言刷题:77. 组合
  20. 数据分析师的自我修养

热门文章

  1. java深度解析mp3文件
  2. UVA12541 LA6148 Birthdates【最值】
  3. POJ3263 Tallest Cow【差分数组】
  4. Go语言的map以及sort
  5. 图案、标签、logo
  6. 强悍的 Linux —— 系统文件及其作用
  7. 【学习 Opencv】—— 常见接口
  8. 极简代码(三)—— 欧式距离
  9. 手机上有没有学python的软件-有哪些可以在手机上敲Python代码的App
  10. 零基础学python-看完这篇,零基础也知道怎么学Python