LeetCode:114_Flatten Binary Tree to Linked List | 将一棵二叉树变成链表的形式 | Medium
要求:Given a binary tree, flatten it to a linked list in-place.将二叉树转化为平坦序列的树。比如:


结题思路:
该题有个提示,转化后的树的序列正好是二叉树前序遍历所得到的序列,所以,该题第一个思路就是利用前序遍历的方式来做。
第二个思路:我们可以利用递归的思路,先对根节点进行处理,将root的左子树放到右子树,在将左子树中的最右端节点“嫁接”到右子树,接着上面得到的子树。接下来在用同样的方法处理当前二叉树的下一个节点。看下面一个图,即可明了。



我实现的是第二种思路,代码如下:
 struct TreeNode {
     int            val;
     TreeNode*    left;
     TreeNode*    right;
     TreeNode(int x): val(x), left(NULL),right(NULL) {}
 };
 void flatten(TreeNode *root)
 {
     if (NULL == root)
         return;
     //使用stack的非递归方法
     TreeNode *left = root->left;
     TreeNode *right = root->right;
     if (left) {
         root->right = left;
         root->left = NULL;
         TreeNode *pTemp = left;
         while (pTemp->right)
             pTemp = pTemp->right;
         pTemp->right = right;
         flatten(root->right);
     }
 }
LeetCode:114_Flatten Binary Tree to Linked List | 将一棵二叉树变成链表的形式 | Medium的更多相关文章
- 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 ... 
- [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 e ... 
- [LeetCode] 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 ... 
- LeetCode——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 ... 
- [leetcode]Flatten Binary Tree to Linked List @ Python
		原题地址:http://oj.leetcode.com/problems/flatten-binary-tree-to-linked-list/ 题意: Given a binary tree, fl ... 
- LeetCode - 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 ... 
- LeetCode OJ-- Flatten Binary Tree to Linked List **
		https://oj.leetcode.com/problems/flatten-binary-tree-to-linked-list/ 二叉树的处理,将二叉树转换成类似一个单链表的东东,并且原地. ... 
- [leetcode]_Flatten Binary Tree to Linked List
		题目:将一棵二叉树履平成一个类似Linked-list的东西. 思路:该过程类似于二叉树的前序遍历,但是遍历代码,我处理不来参数的变化.没AC. -------->写的很好的解题博客 参考上述博 ... 
- LeetCode 114| Flatten Binary Tree to Linked List(二叉树转化成链表)
		题目 给定一个二叉树,原地将它展开为链表. 例如,给定二叉树 1 / \ 2 5 / \ \ 3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ 6 解析 通过递归实现:可以用先序遍历, ... 
随机推荐
- Windows 10 系统,配置jdk系统环境变量
			1. 下载jdk包,下载路径为:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html, ... 
- java学习笔记(九):Java 流(Stream)、文件(File)和IO
			Java 的控制台输入由 System.in 完成. 为了获得一个绑定到控制台的字符流,你可以把 System.in 包装在一个 BufferedReader 对象中来创建一个字符流.需要import ... 
- 正确理解c和c ++的复杂类型声明
			本文作者girlrong是网易广州社区的C语言版版主,这篇文章被选在精华区.很是不错,不敢独享!据说她乐于助人,虚心诚恳,颇受网友欢迎.只可惜现在已退隐江湖了.在最近学习C语言过程中,了解些前辈大牛的 ... 
- 深度学习项目——基于卷积神经网络(CNN)的人脸在线识别系统
			基于卷积神经网络(CNN)的人脸在线识别系统 本设计研究人脸识别技术,基于卷积神经网络构建了一套人脸在线检测识别系统,系统将由以下几个部分构成: 制作人脸数据集.CNN神经网络模型训练.人脸检测.人脸 ... 
- HDU 5828 Rikka with Sequence(线段树区间加开根求和)
			Problem DescriptionAs we know, Rikka is poor at math. Yuta is worrying about this situation, so he g ... 
- <jsp:forward page='/index' />
- ubuntu中的环境变量
			写这句话,给自己提个醒吧,添加路径(所谓的环境变量):系统会去相应的目录中找可执行文件,到时候只要输入命令名字,可以不用输入完整的路径 
- 数字提取——C语言
			Problem Description AekdyCoin is the most powerful boy in the group ACM_DIY, whose signature is valu ... 
- GUI学习之一——PyQt5初识
			我们在第〇篇里先演示了GUI的功能,其实Python有多个库是支持GUI编程的,python官网列出了大量的说明,其中包括了原生的tkinter 还有许多第三方库 Pyqt PySide wxPyth ... 
- java多线程系列8 高级同步工具(2)CountDownLatch
			CountDownLatch,计数器的初始值为线程的数量.每当一个线程完成了自己的任务后, 计数器的值就会减1.当计数器值到达0时,它表示所有的线程已经完成了任务, 然后在闭锁上等待的线程就可以恢复执 ... 
