אפר.04

לבנות עץ בינרי ממערך

לבנות עץ בינרי ממערך

יש לבנות עץ ממערך של מספרים

  1. public class TreeNod{
  2. public int? val;
  3. public TreeNode left; public TreeNode right;
  4. public TreeNode(int? x) { val = x; }
  5. }
  6.  
  7. public static TreeNode toTreeNode(this int?[] tree) {
  8. if (tree.Length == 0) return null;
  9. TreeNode root = new TreeNode(tree[0]);
  10. Queue<TreeNode> q = new Queue<TreeNode>();
  11. q.Enqueue(root);
  12. for (int i = 1; i < tree.Length; i++) {
  13. TreeNode node = q.Peek();
  14. if (node.left == null) {
  15. node.left = new TreeNode(tree[i]);
  16. if (tree[i] != null) q.Enqueue(node.left);
  17. }
  18. else if (node.right == null) {
  19. node.right = new TreeNode(tree[i]);
  20. if (tree[i] != null) q.Enqueue(node.right);
  21. q.Dequeue();
  22. }
  23. }
  24. return root;
  25. }
  26.  
  27. static void Main(string[] args) {
  28. int?[] arr = new int?[] {1, null, 0, 1 };
  29. TreeNode root = arr.toTreeNode();
  30. }


שתף את הסיפור הזה:

תגובות(0)

השאירו תגובה

קפטצ'ה לא מתאימה

תגובה