![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
IFollowRivers
now is everything!
展开
-
从链表中删除重复数据(三种方法)
思路一:遍历链表,把遍历的值存储到一个Hashtable中,在遍历过程中,若当前访问的值在Hashtable中已经存在,则说明这个数据是重复的,因此就可以删除。优点:时间复杂度较低O(n)缺点:在遍历过程中需要额外的存储空间来保存已遍历过的值思路二:对链表进行双重循环遍历,外循环正常遍历链表,假设外循环当前遍历的结点为cur,内循环从cur开始遍历,若碰到与cur所指向结点值相原创 2017-04-13 19:52:49 · 14839 阅读 · 1 评论 -
单链表——基本操作(求表长、查找、插入、删除)(java)
public class LinkedList { public Node first;//定义头结点 public LinkedList(){ this.first=null; } //定义节点类 public class Node{ int data; Node next=null; public Node(int data){ this.data=原创 2017-04-13 16:40:17 · 2557 阅读 · 0 评论 -
二叉查找树——查找、插入、删除 思路+代码(Java)
二叉查找树(也叫二叉搜索树、二叉排序树)因为它要求左子树小于根结点,右子树大于根结点(对于每个结点均如此),这就说明了二叉树具有有序的特定。二叉树查找的效率取决于数的高度。原创 2017-04-12 17:25:30 · 525 阅读 · 0 评论 -
剑指offer——二叉搜索树的后序遍历序列
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。public class verifySquenceOfBST { public boolean VerifySquenceOfBST(int [] sequence){ if(sequence.length==0) re原创 2017-05-15 19:35:29 · 245 阅读 · 0 评论 -
剑指offer——树的子结构
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)关于题意的理解:子树和子结构问题:子树的意思是包含了一个节点,就得包含这个节点下的所有节点。子结构的意思是包含了一个节点,可以只取左子树或者右子树,或者都不取。public class hasSubtree { public boolean HasSubtree(原创 2017-05-15 19:48:03 · 261 阅读 · 0 评论