【LeetCode-面试算法经典-Java实现】【114-Flatten Binary Tree to Linked List(二叉树转单链表)】
来源:互联网 发布:淘宝涉水批文 编辑:程序博客网 时间:2024/05/22 15:08
【114-Flatten Binary Tree to Linked List(二叉树转单链表)】
【LeetCode-面试算法经典-Java实现】【所有题目目录索引】
原题
Given a binary tree, flatten it to a linked list in-place.
For example,
Given
1 / \ 2 5 / \ \ 3 4 6
The flattened tree should look like:
1 \ 2 \ 3 \ 4 \ 5 \ 6
题目大意
给定一棵二叉树,将它转成单链表,使用原地算法。
解题思路
从根结点(root)找左子树(l)的最右子结点(x),将root的右子树(r)接到x的右子树上(x的右子树为空),root的左子树整体调整为右子树,root的左子树赋空。
代码实现
树结点类
public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}
算法实现类
public class Solution { public void flatten(TreeNode root) { TreeNode head = new TreeNode(-1); head.right = root; TreeNode node = head; while (node.right != null) { node = node.right; if (node.left != null) { TreeNode end = node.left; while (end.right != null) { end = end.right; } TreeNode tmp = node.right; node.right = node.left; node.left = null; end.right = tmp; } } head.right = null; // 去掉引用方便垃圾回收 }}
评测结果
点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。
特别说明
欢迎转载,转载请注明出处【http://blog.csdn.net/derrantcm/article/details/47438085】
2 0
- 【LeetCode-面试算法经典-Java实现】【114-Flatten Binary Tree to Linked List(二叉树转单链表)】
- Flatten Binary Tree to Linked List (二叉树转前序链表)【leetcode】
- LeetCode(114) Flatten Binary Tree to Linked List
- 【leetcode 二叉树摊直】Flatten Binary Tree to Linked List
- LeetCode算法题目:Flatten Binary Tree to Linked List
- LeetCode: Flatten Binary Tree to Linked List
- LeetCode Flatten Binary Tree to Linked List
- LeetCode: Flatten Binary Tree to Linked List
- [Leetcode] Flatten Binary Tree to Linked List
- [LeetCode] Flatten Binary Tree to Linked List
- Leetcode: Flatten Binary Tree to Linked List
- leetcode Flatten Binary Tree to Linked List
- LeetCode Flatten Binary Tree to Linked List
- LeetCode - Flatten Binary Tree to Linked List
- 【leetcode】Flatten Binary Tree to Linked List
- [LeetCode]Flatten Binary Tree to Linked List
- [Leetcode]Flatten Binary Tree to Linked List
- [leetcode]Flatten Binary Tree to Linked List
- ds18b20驱动终于写好了
- LeetCode 题解(159): Partition List
- CodeForces 429B()
- 多线程
- 【LeetCode-面试算法经典-Java实现】【113-Path Sum II(路径和)】
- 【LeetCode-面试算法经典-Java实现】【114-Flatten Binary Tree to Linked List(二叉树转单链表)】
- 【LeetCode-面试算法经典-Java实现】【116-Populating Next Right Pointers in Each Node(二叉树链接右指针)】
- 【转】TalkingData灵动分析-开启无码分析新纪元
- 【高德地图API】如何解决坐标转换,坐标偏移?
- sql生成器(含注释)问题修复版
- 2 - Add Two Numbers
- HUNAN OJ 11567 Escaping
- cocoapods install
- iOS UIView自定义四个边角的圆角