TypechoJoeTheme

Toasobi的博客

搜索到 47 篇与 的结果 ———
2023-09-14

删除二叉搜索树的节点

删除二叉搜索树的节点
根据二叉搜索树的性质:如果目标节点大于当前节点值,则去右子树中删除;如果目标节点小于当前节点值,则去左子树中删除;如果目标节点就是当前节点,分为以下三种情况:其无左子:其右子顶替其位置,删除了该节点;其无右子:其左子顶替其位置,删除了该节点;其左右子节点都有:其左子树转移到其右子树的最左节点的左子树上,然后右子树顶替其位置,由此删除了该节点。第三种情况图示如下:代码如下:class Solution { public TreeNode deleteNode(TreeNode root, int key) { if (root == null)return null; if (key > root.val) root.right = deleteNode(root.right, key); // 去右子树删除 else if(key < root.val) root.left = deleteNode(root.left, key); // 去左子树删除...
2023-09-14

经典例题

0 阅读
0 评论
2023年09月14日
0 阅读
0 评论
2023-09-05

Excel表列名称(进制转换问题)

Excel表列名称(进制转换问题)
题目:给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。例如:A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...思路:这是一道进制转换题,26一轮,用十进制数表示,所以是一道十进制转26进制问题 需要十分注意的点是:本题需要我们将从1开始,我们需要使用-1 熨平取模的问题。 因为x%26=[0,25] 但是我们取从[1-26]对应[A-Z] 直接取模 26%26=0 不在我们范围内 所以我们采用-1 [0-25]对应[A-Z] (26-1)%26 =25 25+'A'='Z'代码:class Solution { public String convertToTitle(int columnNumber) { StringBuilder sb = new StringBuilder(); while (columnNumber > 0) { columnNumber...
2023-09-05

经典例题

0 阅读
0 评论
2023年09月05日
0 阅读
0 评论
2023-03-22

二叉搜索树与双向链表(中等)

二叉搜索树与双向链表(中等)
这道题当时没做出来,其实是已经想到了使用中序遍历(中序遍历得到的结果就是链表的顺序)。但是不知道如何进行链表节点之间的连接。后面也思考到了每个子树的最右节点下一个连接的是根节点,这个其实就是中序遍历的思维后面看了题解知道了,可以设置两个全局变量,一个head,一个pre。head用于记录最后返回的结果(头节点),pre用于记录每次递归遍历到的节点的前一个节点,用于两点间连接。最后还要将首位相连(head.left = pre; pre.right = head;)此题得解代码如下:<div>class Solution { Node head, pre; public Node treeToDoublyList(Node root) { if(root==null) return null; dfs(root); head.left = pre; pre.right = head; return head; } public void dfs(Node ro...
2023-03-22

剑指offer(第二版)

0 阅读
0 评论
2023年03月22日
0 阅读
0 评论