leedcode做题总结,题目Flatten Binary Tree to Linked List 2012/10/14
2014-07-20 15:01
288 查看
这个题是把一个二叉树压成一个由节点.right链接起来的linkedlist,将整个左子树压入节点与右儿子之间。
每个节点可以对左子树依次求递归,然后返回左子树处理过后的最后一个节点,与右儿子相连。
Update 2015/08/19: 上面的思路正确但是有一些细节不好,比如说tmp完全就没有必要存在
每个节点可以对左子树依次求递归,然后返回左子树处理过后的最后一个节点,与右儿子相连。
public TreeNode flat(TreeNode a){ if(a.left==null&&a.right==null)return a; TreeNode rec=null; while (a!=null){ if(a.left!=null){ TreeNode tmp = flat(a.left); tmp.right=a.right; a.right=a.left; a.left=null; rec = tmp; a=tmp.right; }else { rec = a; a=a.right; } } return rec; } public void flatten(TreeNode root) { if(root==null)return; if(root.left==null&&root.right==null)return; flat(root); }
Update 2015/08/19: 上面的思路正确但是有一些细节不好,比如说tmp完全就没有必要存在
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public TreeNode getFlat(TreeNode node){ if(node.left==null&&node.right==null)return node; TreeNode res = null; while (node != null){ if (node.left != null){ res = getFlat(node.left); res.right = node.right; node.right = node.left; node.left = null; node = res.right; } else { res = node; node = node.right; } } return res; } public void flatten(TreeNode root) { if (root == null) return; getFlat(root); } }
相关文章推荐
- Middle-题目53:114. Flatten Binary Tree to Linked List
- leecode 解题总结:114. Flatten Binary Tree to Linked List
- LeetCode算法题目:Flatten Binary Tree to Linked List
- [leedcode 114] Flatten Binary Tree to Linked List
- FTPrep, 114 Flatten Binary Tree to Linked List, comment中有总结,值得一看
- leetcode做题总结,题目Convert Sorted List to Binary Search Tree 2012/10/02
- 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
- 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
- [LeetCode] Flatten Binary Tree to Linked List
- [LeetCode] Flatten Binary Tree to Linked List 解题报告
- [leetcode]Flatten Binary Tree to Linked List