DEV Community

Alysa
Alysa

Posted on • Updated on

Flatten Binary Tree to Linked List | LeetCode | Java

Approach 1 : Using DFS

class Solution {
    TreeNode prevNode = null;
    public void flatten(TreeNode root) {

        if(root==null)
            return;

        flatten(root.right);
        flatten(root.left);
        root.right = prevNode;
        root.left = null;
        prevNode = root;
    }
}
Enter fullscreen mode Exit fullscreen mode

Approach 2 : Using Stack (BFS)

class Solution {
    public void flatten(TreeNode root) {

        if(root==null)
            return;

        Stack<TreeNode> stack = new Stack<>();

        stack.add(root);

        while(!stack.isEmpty()){

                TreeNode currentNode = stack.pop();

                if(currentNode.right!=null)
                    stack.push(currentNode.right);

                if(currentNode.left!=null)
                    stack.push(currentNode.left);

                if(!stack.isEmpty())
                    currentNode.right = stack.peek();

                currentNode.left = null;
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

Thanks for reading :)
Feel free to comment and like the post if you found it helpful
Follow for more 🀝 && Happy Coding πŸš€

If you enjoy my content, support me by following me on my other socials:
Github
Hashnode
Medium
Twitter(X)

Top comments (0)