Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func flatten(_ root: TreeNode?) {
- guard let root = root else {
- return
- }
- flattenHelper(root)
- }
- func flattenHelper(_ node : TreeNode) -> (TreeNode, TreeNode){
- if node.left == nil && node.right == nil {
- return (node, node)
- }
- if node.left == nil {
- let rigthtRes = flattenHelper(node.right!)
- return (node, rigthtRes.1)
- }
- if node.right == nil {
- let leftRes = flattenHelper(node.left!)
- node.left = nil
- node.right = leftRes.0
- return (node, leftRes.1)
- }
- let leftRes = flattenHelper(node.left!)
- let rigthtRes = flattenHelper(node.right!)
- node.left = nil
- node.right = leftRes.0
- leftRes.1.right = rigthtRes.0
- return (node, rigthtRes.1)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement