lintcode,将二叉树拆成链表
来源:互联网 发布:数据分析师是什么专业 编辑:程序博客网 时间:2024/04/30 03:53
将一棵二叉树按照前序遍历拆解成为一个假链表。所谓的假链表是说,用二叉树的 right 指针,来表示链表中的 next 指针。
一刷ac
解题思路:可以用一个栈进行前序遍历,前序遍历过程中将left置为空,right置为栈顶元素。
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */public class Solution { /** * @param root: a TreeNode, the root of the binary tree * @return: nothing */ public void flatten(TreeNode root) { if(root == null) return; Stack<TreeNode> stack = new Stack<TreeNode>(); stack.push(root); while(!stack.empty()){ TreeNode node = stack.pop(); if(node.right != null) stack.push(node.right); if(node.left != null) stack.push(node.left); if(stack.empty()){ node.left = null; node.right = null; }else{ node.left = null; node.right = stack.peek(); } } }}
也可以递归
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */public class Solution { /** * @param root: a TreeNode, the root of the binary tree * @return: nothing */ public TreeNode lastnode = null; public void flatten(TreeNode root) { if(root == null) return; if(lastnode != null){ lastnode.left = null; lastnode.right = root; } lastnode = root; TreeNode right = root.right; flatten(root.left); flatten(right); }}
0 0
- LintCode: 将二叉树拆成链表
- lintcode,将二叉树拆成链表
- LintCode 将二叉树拆成链表
- 将二叉树拆成链表-LintCode
- lintcode 将二叉树拆成链表
- lintcode将二叉树拆成链表
- LintCode 将二叉树拆成链表
- lintcode --将二叉树拆成链表
- 将二叉树拆成链表-LintCode
- 容易 将二叉树拆成链表(lintcode)
- LintCode:将二叉树拆成链表453
- lintcode——将二叉树拆成链表
- [LintCode 453] 将二叉树拆成链表(Python)
- LintCode-二叉树拆成链表
- 将二叉树拆分成链表-lintcode
- lintcode 453 将二叉树拆分成链表
- Lintcode 将二叉查找树转换成双链表
- lintCode(453)——将二叉树拆分成链表
- Gson类的高级使用
- JDK源码走读(2):容器之PriorityQueue
- Android 在Xml控件中对应的颜色透明度
- Maven核心之pom详解
- yii中urlmanager配置
- lintcode,将二叉树拆成链表
- JS基础——运行脚本
- Android 多渠道打包基础(友盟)
- Face Alignment at 3000 FPS通俗易懂讲解二 LBP局部二进制特征(特征映射)的生成
- 网络编程-局域网通信
- 动手DIY一个underscorejs库及underscorejs源码分析3
- MAC OSX环境下cordova和ionic的安装配置
- shell中条件判断if中的-z到-d的意思
- jsp语法基础(二)