{ "cells": [ { "cell_type": "markdown", "id": "emotional-plastic", "metadata": {}, "source": [ "# [Binary Tree Python](https://github.com/dashidhy/algorithm-pattern-python/blob/master/data_structure/binary_tree.md)" ] }, { "cell_type": "code", "execution_count": 2, "id": "prepared-collect", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import IPython; IPython.display.HTML('''
''')" ] }, { "attachments": { "09d6b997-032d-4b27-9470-744c9b0e440c.png": { "image/png": "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" } }, "cell_type": "markdown", "id": "competitive-vocabulary", "metadata": {}, "source": [ "## [104. Maximum Depth of Binary Tree](https://leetcode.com/problems/maximum-depth-of-binary-tree/)\n", "\n", "Easy\n", "\n", "Given the root of a binary tree, return its maximum depth.\n", "\n", "A binary tree's maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.\n", "\n", "Example 1:\n", "\n", "![image104.png](attachment:09d6b997-032d-4b27-9470-744c9b0e440c.png)\n", "\n", " Input: root = [3,9,20,null,null,15,7]\n", " Output: 3\n", "\n", "Constraints:\n", "\n", " The number of nodes in the tree is in the range [0, 10^4].\n", " -100 <= Node.val <= 100\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "checked-overall", "metadata": {}, "outputs": [], "source": [ "# recursive\n", "\n", "def maxDepth(root):\n", " if root:\n", " return 1 + max(maxDepth(root.left), maxDepth(root.right))\n", " else:\n", " return 0" ] }, { "cell_type": "code", "execution_count": 2, "id": "committed-heavy", "metadata": {}, "outputs": [], "source": [ "# BFS, working but slow\n", "\n", "def maxDepth(root):\n", " q = deque()\n", " if root:\n", " q.append(root)\n", "\n", " depth = 0\n", " while q:\n", " for _ in range(len(q)):\n", " node = q.popleft()\n", " if node.left:\n", " q.append(node.left)\n", " if node.right:\n", " q.append(node.right)\n", " \n", " depth += 1\n", " return depth" ] }, { "attachments": { "449ac6cc-b8f0-416b-88b5-59960f0b0a2c.png": { "image/png": "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DwcgC727GxIREcHi7ADHTBJX8c0336BUqVIOISmvvPIKqlWrxgSX+j7dEW4FAJ9++ilUVcWkSZNccnyJ9yPGqFosFojjnvc7Ziat2mil/vfff8frr7/Oxjjfhl3TNNy4cQMNGzZkYYfbt29n+1utVvzvf/9Do0aNmLDSBV3+HEDGjQ+bzYZx48aBEIJp06ZJV4AHIHSaTn2srl684jOpjh49il69eqFgwYLInz8/Pv74Yxw/fhydO3dmVmxMTAzb15UprXQw0djByMhIlx1b4r04G8Pz5s1jfk+jilKZnWrT/Tdt2sSaEfr5+WHMmDG4c+cO285msyElJQVt27ZlsdwHDhzQZU2dOHEC1atXh9lsxptvvolTp07pirRk5troexLHvZytuReyYsUKVt2H4mpXgHgsGhWgaRquXLmChg0bghCC5557Dvv373fLNIUes2vXrjqXgyR7I45heoNduXIlCCHo2rWrLliet1ozOv6pAfDNN9+gTJkyIISgUKFC+L//+z/WmYM/x507dzBw4EBm0a5bt46FaAHAsWPHUL58eRBC0KhRI1y6dOmJv4v0/dCOAjS7UgqreyG7d++GyWRCjRo1nsh5nx42mw179uxBYGAg3n//ffTp00fn8N+7dy9Kly4NQgjq1KmDxMRENhVztZ8V0MexyqlQzsNqtbIxSQhBzZo1da9n1mql2//yyy8oVaoUCCGoWLEidu7c6XAMfvY2e/Zs5v765JNPdHVUv/vuO5Yg0L9/f9y/f9/hfJkNuaKLaHwEghRX90EuX74MQggKFy6ssxRdKToHDx5kg6506dLYtGkTgEcFqGm7XkIIxo8fn6Eq7JmFX1goUKAAVFVlGSiS7I2z2dfly5dhMpnwwgsvAHi6xdK///4bderUASEEZcqUwc6dO9NMQ7XZbNi7dy8LwypVqhR++eUXpKamIikpiS1sEUKwZMkSnZg+ibDabDbkz58fiqLgypUrbon8keghAJA/f36oqopz/7+TqSvvZDabDbdv30a7du1YPjQfCUAf16xZE6dOnWJ3dFfVjOQH4rlz56AoCl588UW5KppDcDYLs1qtKFKkCAh51DngafyrI0eOdKiB4e/vr6sBQAhB5cqVceLECdhsNvz333+s6hQfJUNrCxBC8O6777L6HWIh7IyKoqZpSExMZMbTkxSakWQeAgBt2rQBIQTR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" } }, "cell_type": "markdown", "id": "ecological-knock", "metadata": {}, "source": [ "## [110. Balanced Binary Tree](https://leetcode.com/problems/balanced-binary-tree/)\n", "\n", "Easy\n", "\n", "Given a binary tree, determine if it is height-balanced.\n", "\n", "For this problem, a height-balanced binary tree is defined as:\n", "\n", " a binary tree in which the left and right subtrees of every node differ in height by no more than 1.\n", "\n", "Example 1:\n", "\n", "![image110.png](attachment:449ac6cc-b8f0-416b-88b5-59960f0b0a2c.png)\n", "\n", " Input: root = [3,9,20,null,null,15,7]\n", " Output: true\n", " \n", "Constraints:\n", "\n", " The number of nodes in the tree is in the range [0, 5000].\n", " -10^4 <= Node.val <= 10^4\n", "\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "dramatic-peeing", "metadata": {}, "outputs": [], "source": [ "# 遞迴的過程中需要傳其它資訊(子樹深度)。寫一個遞迴函數 depth_balance 輸出完整資訊,但最後 isBalanced 只回傳需要的部份\n", "\n", "def isBalanced(root):\n", " def depth_balance(root):\n", " '''return (depth, isBalanced)'''\n", " if root:\n", " depth_l, balanced_l = depth_balance(root.left)\n", " depth_r, balanced_r = depth_balance(root.right)\n", "\n", " return 1 + max(depth_l, depth_r), balanced_l and balanced_r and abs(depth_l - depth_r) < 2\n", " else:\n", " return 0, True\n", "\n", " return depth_balance(root)[1]" ] }, { "attachments": { "d87022e2-e085-4d95-9728-f23420947792.png": { "image/png": "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" } }, "cell_type": "markdown", "id": "dress-prison", "metadata": {}, "source": [ "## [124. Binary Tree Maximum Path Sum](https://leetcode.com/problems/binary-tree-maximum-path-sum/)\n", "\n", "Hard\n", "\n", "A path in a binary tree is a sequence of nodes where each pair of adjacent nodes in the sequence has an edge connecting them. A node can only appear in the sequence at most once. Note that the path does not need to pass through the root.\n", "\n", "The path sum of a path is the sum of the node's values in the path.\n", "\n", "Given the root of a binary tree, return the maximum path sum of any path.\n", "\n", " \n", "Example 2:\n", "\n", "![image124.png](attachment:d87022e2-e085-4d95-9728-f23420947792.png)\n", "\n", " Input: root = [-10,9,20,null,null,15,7]\n", " Output: 42\n", " Explanation: The optimal path is 15 -> 20 -> 7 with a path sum of 15 + 20 + 7 = 42.\n", "\n", "Constraints:\n", "\n", " The number of nodes in the tree is in the range [1, 3*10^4].\n", " -1000 <= Node.val <= 1000\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "id": "honey-phone", "metadata": {}, "outputs": [], "source": [ "# rsum 本身一定要出現在 mps return 的 max 裡不然 [0] 不會過\n", "\n", "import math\n", "\n", "def maxPathSum(root):\n", " def mps(root):\n", " '''\n", " return two sums: \n", "\n", " 1. the max path sum\n", " 2. the restricted max path sum where one end of the path is the root\n", " '''\n", " if root:\n", " sum_l, rsum_l = mps(root.left)\n", " sum_r, rsum_r = mps(root.right)\n", " rsum = max(root.val, root.val + rsum_l, root.val + rsum_r)\n", "\n", " return max(sum_l, sum_r, rsum, root.val + rsum_l + rsum_r), rsum\n", " else:\n", " return -math.inf, -math.inf\n", "\n", " return mps(root)[0]" ] }, { "attachments": { "75e69ee1-7ed1-4ad5-9e3c-f435e932b306.png": { "image/png": "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" } }, "cell_type": "markdown", "id": "young-processing", "metadata": {}, "source": [ "## [236. Lowest Common Ancestor of a Binary Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/)\n", "\n", "Medium\n", "\n", "Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.\n", "\n", "According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes p and q as the lowest node in T that has both p and q as descendants (where we allow a node to be a descendant of itself).”\n", "\n", "Example 2:\n", "\n", "![image236.png](attachment:75e69ee1-7ed1-4ad5-9e3c-f435e932b306.png)\n", "\n", " Input: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4\n", " Output: 5\n", " Explanation: The LCA of nodes 5 and 4 is 5, since a node can be a descendant of itself according to the LCA definition.\n", "\n", "Constraints:\n", "\n", " The number of nodes in the tree is in the range [2, 10^5].\n", " -10^9 <= Node.val <= 10^9\n", " All Node.val are unique.\n", " p != q\n", " p and q will exist in the tree." ] }, { "cell_type": "code", "execution_count": 1, "id": "entertaining-weekend", "metadata": {}, "outputs": [], "source": [ "# LeetCode 上最快解答:DFS 從下向上(divide and conquer 先遞迴傳回結果再合併)\n", "\n", "def lowestCommonAncestor(root, p, q):\n", " if root in [p, q, None]:\n", " return root\n", "\n", " left = lowestCommonAncestor(root.left, p, q)\n", " right = lowestCommonAncestor(root.right, p, q)\n", "\n", " if left and right:\n", " return root\n", " elif left:\n", " return left\n", " else:\n", " return right" ] }, { "attachments": { "19d72dbe-b0c0-44d2-8df1-acfc9159885f.png": { "image/png": "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" } }, "cell_type": "markdown", "id": "committed-manufacturer", "metadata": {}, "source": [ "## [102. Binary Tree Level Order Traversal](https://leetcode.com/problems/binary-tree-level-order-traversal/)\n", "\n", "Medium\n", "\n", "Given the root of a binary tree, return the level order traversal of its nodes' values. (i.e., from left to right, level by level).\n", "\n", "\n", "Example 1:\n", "\n", "![image102.png](attachment:19d72dbe-b0c0-44d2-8df1-acfc9159885f.png)\n", "\n", " Input: root = [3,9,20,null,null,15,7]\n", " Output: [[3],[9,20],[15,7]] \n", "\n", "Constraints:\n", "\n", " The number of nodes in the tree is in the range [0, 2000].\n", " -1000 <= Node.val <= 1000\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "id": "excess-acrobat", "metadata": {}, "outputs": [], "source": [ "# BFS\n", "\n", "from collections import deque\n", "\n", "def levelOrder(root):\n", " q = deque()\n", " if root:\n", " q.append(root)\n", "\n", " res = []\n", " while q:\n", " level = []\n", " for _ in range(len(q)):\n", " node = q.popleft()\n", " level.append(node.val)\n", " if node.left:\n", " q.append(node.left)\n", " if node.right:\n", " q.append(node.right)\n", " \n", " res.append(level)\n", " return res" ] }, { "attachments": { "96fe0c51-6cb1-4892-a8e0-91766bda277d.png": { "image/png": "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" } }, "cell_type": "markdown", "id": "parliamentary-montgomery", "metadata": {}, "source": [ "## [107. Binary Tree Level Order Traversal II](https://leetcode.com/problems/binary-tree-level-order-traversal-ii/)\n", "\n", "Medium\n", "\n", "Given the root of a binary tree, return the bottom-up level order traversal of its nodes' values. (i.e., from left to right, level by level from leaf to root).\n", "\n", "Example 1:\n", "\n", "![image107.png](attachment:96fe0c51-6cb1-4892-a8e0-91766bda277d.png)\n", "\n", " Input: root = [3,9,20,null,null,15,7]\n", " Output: [[15,7],[9,20],[3]]\n", "\n", "Constraints:\n", "\n", " The number of nodes in the tree is in the range [0, 2000].\n", " -1000 <= Node.val <= 1000" ] }, { "cell_type": "code", "execution_count": null, "id": "initial-binding", "metadata": {}, "outputs": [], "source": [ "# BFS 解答跟上面那題一模一樣只是 return res[::-1]。LeetCode 上速度前幾名的 BFS 解答都是這樣做的\n", "# 或者把 res.append(level) 那行改成 res.insert(0, level),但理論上會慢一點\n", "\n", "# 這題也可以用 recursion" ] }, { "attachments": { "25782454-3e39-414c-bec6-6de16ee11944.png": { "image/png": "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" } }, "cell_type": "markdown", "id": "minimal-snake", "metadata": {}, "source": [ "## [103. Binary Tree Zigzag Level Order Traversal](https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/)\n", "\n", "Medium\n", "\n", "Given the root of a binary tree, return the zigzag level order traversal of its nodes' values. (i.e., from left to right, then right to left for the next level and alternate between).\n", "\n", "Example 1:\n", "\n", "![image103.png](attachment:25782454-3e39-414c-bec6-6de16ee11944.png)\n", "\n", "\n", " Input: root = [3,9,20,null,null,15,7]\n", " Output: [[3],[20,9],[15,7]]\n", "\n", "Constraints:\n", "\n", " The number of nodes in the tree is in the range [0, 2000].\n", " -100 <= Node.val <= 100" ] }, { "cell_type": "code", "execution_count": null, "id": "absolute-parcel", "metadata": {}, "outputs": [], "source": [ "# 作弊的解答同 107 不過在 return 前改 reverse res 裡需要 reverse 的\n", "# 下面是不作弊的方法:每層裡 pop 和 popleft 穿插著用。看 binary tree python(主標題 link)\n", "# 在 pop 的一層裡要 push 下一層的 node 就一定要用 appendleft 才不會一 push 就被 pop 了\n", "\n", "from collections import deque\n", "\n", "def zigzagLevelOrder(root):\n", " q = deque()\n", " if root:\n", " q.append(root)\n", "\n", " from_left = True\n", " res = []\n", " while q:\n", " level = []\n", " for _ in range(len(q)):\n", " if from_left:\n", " node = q.popleft()\n", " level.append(node.val)\n", " if node.left:\n", " q.append(node.left)\n", " if node.right:\n", " q.append(node.right)\n", " else:\n", " node = q.pop()\n", " level.append(node.val)\n", " if node.right:\n", " q.appendleft(node.right)\n", " if node.left:\n", " q.appendleft(node.left)\n", "\n", " from_left = not from_left\n", " res.append(level)\n", " return res" ] }, { "attachments": { "96b66f5e-9b6e-4022-b17a-919e5b915323.png": { "image/png": "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" } }, "cell_type": "markdown", "id": "contrary-intake", "metadata": {}, "source": [ "## [98. Validate Binary Search Tree](https://leetcode.com/problems/validate-binary-search-tree/)\n", "\n", "Medium\n", "\n", "Given the root of a binary tree, determine if it is a valid binary search tree (BST).\n", "\n", "A valid BST is defined as follows:\n", "\n", "* The left subtree of a node contains only nodes with keys less than the node's key.\n", "* The right subtree of a node contains only nodes with keys greater than the node's key.\n", "* Both the left and right subtrees must also be binary search trees.\n", "\n", "Example 1:\n", "\n", "![image98.png](attachment:96b66f5e-9b6e-4022-b17a-919e5b915323.png)\n", "\n", " Input: root = [2,1,3]\n", " Output: true \n", "\n", "Constraints:\n", "\n", " The number of nodes in the tree is in the range [1, 10^4].\n", " -2^31 <= Node.val <= 2^31 - 1" ] }, { "cell_type": "code", "execution_count": 1, "id": "activated-marketplace", "metadata": {}, "outputs": [], "source": [ "# 檢查 inorder 的結果是否 sorted\n", "\n", "def isValidBST(root):\n", " lst = inorder(root)\n", " return all([lst[i] < lst[i+1] for i in range(len(lst)-1)])\n", "\n", "def inorder(root):\n", " if not root:\n", " return []\n", " else:\n", " return inorder(root.left) + [root.val] + inorder(root.right)" ] }, { "cell_type": "code", "execution_count": null, "id": "incorrect-liabilities", "metadata": {}, "outputs": [], "source": [ "# From LeetCode\n", "\n", "def isValidBST(root): \n", " def validate(node, low=-math.inf, high=math.inf):\n", " '''\n", " verify if node is a valid BST taking values in (low, high)\n", " '''\n", " if not node:\n", " return True\n", " if node.val <= low or node.val >= high:\n", " return False\n", " \n", " return (validate(node.right, node.val, high) and validate(node.left, low, node.val))\n", "\n", " return validate(root)" ] }, { "attachments": { "595baf22-947e-4b3b-b323-059ac020e011.png": { "image/png": "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" } }, "cell_type": "markdown", "id": "composed-paint", "metadata": {}, "source": [ "## [701. Insert into a Binary Search Tree](https://leetcode.com/problems/insert-into-a-binary-search-tree/)\n", "\n", "Medium\n", "\n", "You are given the root node of a binary search tree (BST) and a value to insert into the tree. Return the root node of the BST after the insertion. It is guaranteed that the new value does not exist in the original BST.\n", "\n", "Notice 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.\n", "\n", "Example 1:\n", "\n", "![image701.png](attachment:595baf22-947e-4b3b-b323-059ac020e011.png)\n", "\n", " Input: root = [4,2,7,1,3], val = 5\n", " Output: [4,2,7,1,3,5]\n", "\n", "Constraints:\n", "\n", " The number of nodes in the tree will be in the range [0, 10^4].\n", " -10^8 <= Node.val <= 10^8\n", " All the values Node.val are unique.\n", " -10^8 <= val <= 10^8\n", " It's guaranteed that val does not exist in the original BST." ] }, { "cell_type": "code", "execution_count": null, "id": "canadian-shakespeare", "metadata": {}, "outputs": [], "source": [ "# naively move to the right place and add a node\n", "\n", "def insertIntoBST(root, val):\n", " if not root:\n", " return TreeNode(val)\n", "\n", " cur = root\n", " while cur:\n", " prev = cur\n", " if cur.val > val:\n", " cur = cur.left\n", " else:\n", " cur = cur.right\n", "\n", " if prev.val > val:\n", " prev.left = TreeNode(val)\n", " else:\n", " prev.right = TreeNode(val)\n", "\n", " return root" ] }, { "cell_type": "code", "execution_count": null, "id": "vietnamese-cruise", "metadata": {}, "outputs": [], "source": [ "# clean recursive solution from LeetCode\n", "\n", "def insertIntoBST(root, val):\n", " if not root:\n", " return TreeNode(val)\n", " if val < root.val:\n", " root.left = insertIntoBST(root.left, val)\n", " else:\n", " root.right = insertIntoBST(root.right, val)\n", " return root" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" } }, "nbformat": 4, "nbformat_minor": 5 }