Given a binary tree, flatten it to a linked list in-place.
For example,
Given
Given
1 / \ 2 5 / \ \ 3 4 6
1 \ 2 \ 3 \ 4 \ 5 \ 6利用类似Moris遍历的方式来进行处理,记住在将左子树放到右子树之后,将左子树置空。
public void flatten(TreeNode root) { TreeNode temp = null; while(root != null) { if(root.left == null) root = root.right; else { temp = root.left; while(temp.right != null) temp = temp.right; temp.right = root.right; root.right = root.left; root.left = null; // important, don't forget root = root.right; } } }
没有评论:
发表评论