701. Insert into a Binary Search Tree

題目

https://leetcode.com/problems/insert-into-a-binary-search-tree/

Given the root node of a binary search tree (BST) and a value to be inserted into the tree, insert the value into the BST. Return the root node of the BST after the insertion. It is guaranteed that the new value does not exist in the original BST.

Note that there may exist multiple valid ways for the insertion, as long as the tree remains a BST after insertion. You can return any of them.

For example,

Given the tree:

        4
       / \
      2   7
     / \
    1   3

And the value to insert: 5
You can return this binary search tree:

         4
       /   \
      2     7
     / \   /
    1   3 5

This tree is also valid:

         5
       /   \
      2     7
     / \   
    1   3
         \
          4

解答

額,憑着直覺,我認爲,如果比當前節點大,並且右節點是空的,就塞進去,否則的話,就遞歸右節點。左節點一樣的道理。然後寫了一下代碼,就通過了,還0ms beats 100%,太爽了……

public TreeNode insertIntoBST(TreeNode root, int val) {
    insert(root, val);
    return root;
}

public static void insert(TreeNode node, int val) {
    if (node != null) {
        if (val > node.val) {
            if (node.right == null) {
                node.right = new TreeNode(val);
            } else {
                insert(node.right, val);
            }
        } else if (val < node.val) {
            if (node.left == null) {
                node.left = new TreeNode(val);
            } else {
                insert(node.left, val);
            }
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章