TreeLinkNode Insert(int value) { TreeLinkNode nextTry = null; if (value > val) { if (right == null) { right = new TreeLinkNode(value); right.next = this; return(right); } else { nextTry = right; } } if (value < val) { if (left == null) { left = new TreeLinkNode(value); left.next = this; return(left); } else { nextTry = left; } } return(nextTry.Insert(value)); }
public static TreeLinkNode Create(int[] arr, int targetVal) { TreeLinkNode target = null; var head = new TreeLinkNode(arr[0]); if (head.val == targetVal) { target = head; } for (var i = 1; i < arr.Length; ++i) { var node = head.Insert(arr[i]); if (node.val == targetVal) { target = node; } } return(target); }