leetcode15: flatten binary tree
来源:互联网 发布:淘宝店铺被关闭了24分 编辑:程序博客网 时间:2024/05/16 11:21
Flatten Binary Tree to Linked ListOct 14 '12
Given a binary tree, flatten it to a linked list in-place.
For example,
Given
1 / \ 2 5 / \ \ 3 4 6The flattened tree should look like:
1 \ 2 \ 3 \ 4 \ 5 \ 6
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public void flatten(TreeNode root) { if(root==null) return; TreeNode node = root; TreeNode pre = new TreeNode(0); Stack<TreeNode> stack = new Stack<TreeNode>(); while(!stack.isEmpty() || node != null) { if(node==null) { node = stack.pop(); } else{ if(node.right!=null) stack.push(node.right); pre.right = node; pre.left = null; pre = node; node = node.left; } } }}
in-place
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: void flatten(TreeNode *root) { if(root==nullptr) return; stack<TreeNode*> sta; sta.push(root); while(!sta.empty()) { TreeNode * n = sta.top(); sta.pop(); if(n->right!=nullptr) sta.push(n->right); if(n->left!=nullptr) sta.push(n->left); n->left = nullptr; if(sta.empty() ){ n->right = nullptr; } else n->right = sta.top(); } }};
not in-place
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public void flatten(TreeNode root) { // Start typing your Java solution below // DO NOT write main() function Queue<TreeNode> queue = new LinkedList<TreeNode>(); //preorder traversal. Stack<TreeNode> stack = new Stack<TreeNode>(); TreeNode node = root; while(!stack.isEmpty() || node != null) { if(node!=null) { queue.add(node); stack.push( node ); node = node.left; } else { node = stack.pop(); node = node.right; } } while( !queue.isEmpty() ) { node = queue.remove(); node.left = null; node.right = queue.peek(); } }}
- leetcode15: flatten binary tree
- LeetCode之flatten binary tree
- 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
- 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
- Flatten Binary Tree to Linked List
- Flatten Binary Tree to Linked List
- LeetCode - Flatten Binary Tree to Linked List
- 【leetcode】Flatten Binary Tree to Linked List
- Flatten Binary Tree to Linked List
- [LeetCode]Flatten Binary Tree to Linked List
- Flatten Binary Tree to Linked List
- android在拨号键盘输入类似*#*#0318#*#*的指令
- ajax请求struts action返回json时XmlHttpRequest.status500错误
- 【使用Html5 CfxixiJS制作APP】如何用iscroll制作水平滚动的List布局
- Java读二进制文件哪种好
- 锋利的SQL:时间段天数统计
- leetcode15: flatten binary tree
- hdu 1017数学水题
- 谈一谈我对本科计算机专业的认识
- Java写二进制文件哪种好
- babyos (二)——使用BIOS以及直接写显存绘制图形
- Excel工作表之SQL查询方法
- 锋利的SQL:数字范围统计
- 杭电ACM 2024 C语言合法标识符
- 商品goods简表sql语句