private static IList <LeetCode95TreeNode> BuildTree(int start, int end) { var trees = new List <LeetCode95TreeNode>(); if (start > end) { trees.Add(null); return(trees); } for (int i = start; i <= end; i++) { var leftTrees = BuildTree(start, i); var rightTrees = BuildTree(i + 1, end); foreach (var left in leftTrees) { foreach (var right in rightTrees) { var currentTree = new LeetCode95TreeNode(i); currentTree.left = left; currentTree.right = right; trees.Add(currentTree); } } } return(trees); }
public LeetCode95TreeNode(int val = 0, LeetCode95TreeNode left = null, LeetCode95TreeNode right = null) { this.val = val; this.left = left; this.right = right; }