Level Order Traversal && Selection Sort
\npublic class Solution {\n    public int MinimumOperations(TreeNode root) {\n        var queue = new Queue<TreeNode>();\n        queue.Enqueue(root);\n        
```\npublic class Solution {\n    public int MinimumOperations(TreeNode root) {\n        var queue = new Queue<TreeNode>();\n        queue.Enqueue(root);\n        \n        int minOps = 0;\n        while (queue.Count > 0) {\n            int size = queue.Count;\n            int[] arr = new int[size];\n            int index = 0;\n            for (int i = 0; i < size; i++) {\n                var currNode = queue.Dequeue();\n                arr[index++] = currNode.val;\n                \n                if (currNode.left != null)\n                    queue.Enqueue(currNode.left);\n                \n                if (currNode.right != null)\n                    queue.Enqueue(currNode.right);\n            }\n            \n            minOps += this.SelectionSort(arr);\n        }\n        \n        return minOps;\n    }\n    \n    private int SelectionSort(int[] arr) {\n        int swapsCount = 0;\n        \n        for (int i = 0; i < arr.Length - 1; i++) {\n            int minIndex = i;\n            \n            for (int j = i + 1; j < arr.Length; j++) {\n                if (arr[j] < arr[minIndex])\n                    minIndex = j;\n            }\n            \n            if (minIndex != i) {\n                int temp = arr[minIndex];\n                arr[minIndex] = arr[i];\n                arr[i] = temp;\n                \n                swapsCount++;\n            }\n        }\n        \n        return swapsCount;\n    }\n}\n```
['Java', 'C#']