![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
canaryW
武大计科硕士,阿里云工程师,研究兴趣包括图神经网络、分布式计算
展开
-
数据结构复习------二叉树中的插入操作leetcode
题目极其简单: 给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。 注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。 例如, 给定二叉搜索树: 4 / \ 2 7 / \ 1 3 和 插入的值: 5 你可以返回这个二叉搜索树: ...原创 2019-03-28 23:18:17 · 185 阅读 · 0 评论 -
重温数据结构------leetcode出现次数最多的子树元素和
这一题相对来说比较简单 给出二叉树的根,找出出现次数最多的子树元素和。一个结点的子树元素和定义为以该结点为根的二叉树上所有结点的元素之和(包括结点本身)。然后求出出现次数最多的子树元素和。如果有多个元素出现的次数相同,返回所有出现次数最多的元素(不限顺序)。 示例 1 输入: 5 / 2 -3 返回 [2, -3, 4],所有的值均只出现一次,以任意顺序返回所有值。 示例 2 输入: 5 ...原创 2019-03-28 20:36:53 · 241 阅读 · 0 评论 -
数据结构复习---leetcode328 odd even linked list
链表的题目,一定要想明白了再写,否则会越写越乱,想明白了很简单( •̀ ω •́ )✧ public ListNode oddEvenList(ListNode head) { if(head==null) return head; ListNode p=head,q=head.next,r=p,s=q; while(p!=null&a...原创 2019-04-01 18:15:39 · 104 阅读 · 0 评论 -
数据结构复习----先序遍历构造二叉树
leetcode1008 public TreeNode bstFromPreorder(int[] preorder) { TreeNode root=new TreeNode(preorder[0]); construct(root,1,preorder.length-1,preorder); return root; } ...原创 2019-04-01 11:55:05 · 407 阅读 · 0 评论 -
数据结构复习------二叉树的堂兄弟节点
class Solution { public boolean isCousins(TreeNode root, int x, int y) { return depth(root,x)==depth(root,y)&&father(root,x)!=father(root,y); } int depth(TreeNode root,int...原创 2019-04-01 11:37:48 · 385 阅读 · 0 评论 -
拓扑排序-----leetcode 课程表||
现在你总共有 n 门课需要选,记为 0 到 n-1。 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。 可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。 示例 1: 输入: 2, [[1,0]] 输出: [0...原创 2019-03-20 10:53:38 · 169 阅读 · 0 评论 -
判断链表是否有环
思路是设两个指针,快指针每次走两步,慢指针每次走一步,如果两个指针相遇则有环,否则快指针的next域为null退出。 public boolean hasCycle(ListNode head) { ListNode fast=head,slow=head; while(fast!=null) { if(fast.next==null) ...原创 2019-02-07 16:52:47 · 77 阅读 · 0 评论 -
快速排序和查找第K小元素
Java快排及快排查找第K大的数字 快速排序 public class fastsort { public static void main(String[] args) { int arr[]= {5,4,3,2,1}; fastsort(arr,0,4); System.out.println(arr[0]); } static void swap(int arr[],int x,in...原创 2019-01-24 15:20:56 · 785 阅读 · 0 评论 -
KMP NEXT求解
注意:这里是针对高教版的next数组,不同算法,教材求的next数组是不一样的. 这是PPT上的注解: 也就是说 1.第一个字符一定为-1 2.如果有字符等于起始字符,而字符前没有能匹配的字符串或者字符前有能匹配的字符串但是把这个字符算上仍然匹配,那么也是-1. 3.如果字符前有k个字符和开头的字符匹配且算上这个字符之后不匹配,那么是K. 4.如果字符前有k个字符和开头的字符匹配且算上这个字符之...原创 2019-01-07 11:15:14 · 412 阅读 · 0 评论 -
非常经典的Dijkstra算法
遇到leetcode上面一道纯Dijkstra算法,自己愣是没想出来,知道考Dijkstra算法但是自己忘了,阶这个机会把Dijkstra算法给写一遍,也算是为去年划水上过的数据结构课赎罪。 有 N 个网络节点,标记为 1 到 N。 给定一个列表 times,表示信号经过有向边的传递时间。 times[i] = (u, v, w),其中 u 是源节点,v 是目标节点, w 是一个信号从源节点...原创 2019-10-10 19:14:13 · 499 阅读 · 0 评论