[LeetCode]114. Flatten Binary Tree to Linked List
来源:互联网 发布:手机淘宝产品链接 编辑:程序博客网 时间:2024/04/30 07:43
https://leetcode.com/problems/flatten-binary-tree-to-linked-list/
将二叉树变成一条线每个节点只有一个右子节点,线的顺序为中序遍历
我的解:
函数返回已经flatten的数组,里面两个元素,是线的开头和结尾
public class Solution { public void flatten(TreeNode root) { if (root == null) { return; } dfs(root); } private TreeNode[] dfs(TreeNode root) { TreeNode[] res = {root, root}; TreeNode[] left; TreeNode[] right; TreeNode leftNode = root.left; TreeNode rightNode = root.right; root.left = null; if (leftNode != null) { left = dfs(leftNode); res[1].right = left[0]; res[1] = left[1]; } if (rightNode != null) { right = dfs(rightNode); res[1].right = right[0]; res[1] = right[1]; } return res; }}
Discuss最优解:
用参数pre记录当前要flatten的直线右下方所要连接的节点,flatten返回当前flatten后的直线左上角的头结点
public class Solution { public void flatten(TreeNode root) { flatten(root, null); } private TreeNode flatten(TreeNode root, TreeNode pre) { if (root == null) { return pre; } // 先右后左 pre = flatten(root.right, pre); pre = flatten(root.left, pre); root.right = pre; root.left = null; pre = root; return pre; }}
0 0
- 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
- LeetCode - Flatten Binary Tree to Linked List
- LeetCode:Flatten Binary Tree to Linked List
- [LeetCode] Flatten Binary Tree to Linked List
- 【Ubuntu 16】安装nginx
- 【bzoj2190】【SDOI2008】仪仗队(数论)
- Linux——修改MAC地址的三种方法
- 微信小程序开发 -- 踩坑
- Emacs 学习资料
- [LeetCode]114. Flatten Binary Tree to Linked List
- javascript数据类型
- 字符串扩展
- 【模板】二维树状数组
- WEBRTC RFC5766-TURN协议
- c#中PLS-00306: wrong number or types of arguments in call to 'BORR_BOOK'
- 快排算法
- hpuoj 1210: OY问题 [搜索]
- codevs 1231_最优布线问题_最小生成树