Java实现-将二叉树拆成链表
来源:互联网 发布:java注册登录代码 编辑:程序博客网 时间:2024/06/06 00:20
将一棵二叉树按照前序遍历拆解成为一个假链表
。所谓的假链表是说,用二叉树的 right 指针,来表示链表中的 next 指针。
注意事项
不要忘记将左儿子标记为 null,否则你可能会得到空间溢出或是时间溢出。
样例
1 \ 1 2 / \ \ 2 5 => 3 / \ \ \ 3 4 6 4 \ 5 \ 6
挑战
不使用额外的空间耗费。
/** * 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) { // write your code here if(root==null)return;Stack<TreeNode> stack=new Stack<TreeNode>();stack.push(root);while(!stack.isEmpty()){TreeNode node=stack.pop();if(node.right!=null){stack.push(node.right);}if(node.left!=null)stack.push(node.left);node.left=null;if(stack.isEmpty())node.right=null;elsenode.right=stack.peek();} } }
阅读全文
0 0
- Java实现-将二叉树拆成链表
- JAVA实现将数组存入二叉树中
- 将二叉树拆成链表
- LintCode: 将二叉树拆成链表
- 将二叉树拆成链表
- lintcode,将二叉树拆成链表
- LintCode 将二叉树拆成链表
- 将二叉树拆成链表-LintCode
- 将二叉树拆成链表
- 将二叉树拆成链表
- lintcode 将二叉树拆成链表
- 将二叉树拆成链表
- 将二叉树拆成链表
- lintcode将二叉树拆成链表
- 将二叉树拆成链表
- 将二叉树拆成链表
- 将二叉树拆成链表
- 将二叉树拆成链表
- UNP(卷2:进程间通信)—— 第一章:简介
- 图灵机的意义与思想内涵
- css中的IFC
- PHP的输出缓冲区
- idea用maven构建java+scala项目
- Java实现-将二叉树拆成链表
- python函数
- 初学者接触service
- 1.5-Java-switch语句-case穿透
- AT91SAM9x5 如果通过VMware实现NFS
- SQL语句的分类
- Window7 64位 安装TensorFlow(GPU)版本
- OpenCV--学习笔记01
- c/c++调用约定