二叉树-flatten binary search tree to linked lis
来源:互联网 发布:java 首字母小写 编辑:程序博客网 时间:2024/05/21 22:31
采用preorder结构。根节点首先输出,下一个节点为左子节点,左子节点的末端链接根节点的右子节点。
2014 update:
public class Solution { public void flatten(TreeNode root) { TreeNode fake = new TreeNode(0); Stack<TreeNode> s = new Stack<TreeNode>(); TreeNode pre = fake; TreeNode cur = root; while (cur != null || !s.isEmpty()) { if (cur != null) { if (cur.right != null) { s.push(cur.right); } pre.right = cur; pre.left = null; pre = pre.right; cur = cur.left; } else { cur = s.pop(); } } }}
2013:
/ Flatten Binary Tree to Linked Listclass Solution { //循环 public voidflatten(TreeNode root) { if (root == null) { return; } Stack s = new Stack(); TreeNode prev = root; TreeNode cur; if (root.left != null ) { cur =root.left; if(root.right != null) { s.push(root.right); } } else if (root.right != null) { cur =root.right; } else { return; } while (cur != null || !s.isEmpty()) { if (cur !=null) { prev.right = cur; prev.left = null; if (cur.right != null){ s.push(cur.right); } prev = cur; cur = cur.left; } else{ cur = s.pop(); } } } };
/
/ Flatten Binary Tree to Linked Listclass Solution { //递归 public voidflatten(TreeNode root) { helper(root); } // return righttail TreeNode helper(TreeNoderoot) { if (root == null) { returnnull; } TreeNode leftTail = helper(root.left); TreeNode rightTail = helper(root.right); if (leftTail != null) { leftTail.right = root.right; } if (root.left != null) { root.right= root.left; root.left= null; } if (rightTail != null ) { returnrightTail; } if (leftTail != null) { returnleftTail; } return root; }}
0 0
- 二叉树-flatten binary search tree to linked lis
- Flatten Binary Tree to Linked List 二叉树拉伸成链表
- Flatten Binary Tree to Linked List:二叉树变更结构
- Flatten Binary Tree to Linked List (二叉树转前序链表)【leetcode】
- 【leetcode 二叉树摊直】Flatten Binary Tree to Linked List
- 将二叉树拆成链表 Flatten Binary Tree to Linked List
- 二叉查找树的个数,BT search 1, 二叉树遍历的非递归形式,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
- LeetCode | Flatten Binary Tree to Linked List(二叉树转化成链表)
- Flatten Binary Tree to Linked List 将二叉树转换为链表
- LeetCode OJ 之 Flatten Binary Tree to Linked List (把二叉树转换成链表)
- Flatten Binary Tree to Linked List 将二叉树转为链表
- LintCode(Flatten Binary Tree to Linked List)翻转二叉树为链表 的变体
- LeetCode 114. Flatten Binary Tree to Linked List(摊平二叉树)
- Flatten Binary Tree to Linked List 将二叉树转成链表形式
- 二叉树遍历应用114. Flatten Binary Tree to Linked List
- 经验总结25--释放内存的重要性
- 二叉树-对称树
- ibm的InfoSphere Streams的制备技术指南精通测试V1
- 二叉树-preorder+inorder 与& postorder+inorder
- 二叉树-populate next node
- 二叉树-flatten binary search tree to linked lis
- 二叉树-Convert Sorted List to Binary Search Tree
- Human Gene Functions - POJ 1080 UVaLive 2344 dp
- 二叉树-recover binary search tree
- 罗马数字转化
- Letter combinations of phone number
- sudoku
- word search
- Restore IP address