首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    双向链表创建插入删除排序

    data); // 显示所有节点 void displayList(Node* head); // 搜索节点 Node* searchList(Node* head, int nFind); // 删除某节点...void deleteList(Node* pFind); // 计算链表有效节点个数 int lenList(Node* head); // 排序 void sortList(Node* head,...pAntClock->pre; } return NULL; } void deleteList(Node* pFind) { if (NULL == pFind) { return; } else { // 把要删除的节点的上一个节点指向被删除节点的下一个节点...pFind->pre->next = pFind->next; // 把要删除的节点的下一个节点指向被删除节点的上一个节点 pFind->next->pre = pFind->pre; // 分别把上下节点建立关系后...= head) { len++; pHead = pHead->next; } return len; } void sortList(Node* head, int len) { // 排序也是使用的冒泡交换指针的方式

    68130

    排序二叉树-删除节点

    前面( https://blog.csdn.net/jsjsjs1789/article/details/106772632 ),我们已经了解了什么是排序二叉树以及排序二叉树的遍历和添加元素,现在我们一起来看一下...,排序二叉树是如何删除元素的。...步骤 先找到要删除的节点 targetNode 找到要删除节点的父节点 parent 一、删除叶子节点 1.确定 targetNoe 是 parent 的左子节点还是右子节点 2.根据前面的情况来对应删除...parent 的左子节点还是右子节点 3.对应删除 三、删除有两颗子树的节点 1.从 targetNode 的右子树找到最小的节点 2.用一个临时变量,将最小节点的值保存 temp 3.删除最小节点 4...* 并删除以 node 为根节点的二叉排序树的最小节点 * * @param node 传入节点 * @return 以 node 为根节点的二叉排序树的最小节点的值 */ public int delRightTreeMin

    46410

    排序二叉树-删除节点

    我们已经了解了什么是排序二叉树以及排序二叉树的遍历和添加元素,现在我们一起来看一下,排序二叉树是如何删除元素的。...步骤 先找到要删除的节点 targetNode 找到要删除节点的父节点 parent 一、删除叶子节点 1.确定 targetNoe 是 parent 的左子节点还是右子节点 2.根据前面的情况来对应删除...parent 的左子节点还是右子节点 3.对应删除 三、删除有两颗子树的节点 1.从 targetNode 的右子树找到最小的节点 2.用一个临时变量,将最小节点的值保存 temp 3.删除最小节点 4...* 并删除以 node 为根节点的二叉排序树的最小节点 * * @param node 传入节点 * @return 以 node 为根节点的二叉排序树的最小节点的值 */ public...this.right.searchParent(value); } else { return null; } } } //添加节点 //递归的形式添加,需要满足二叉排序树的要求

    74410

    从排序数组中删除重复项

    从排序数组中删除重复项(传送门) 题目: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。...] = nums[i]; } } number+=1; return number; } } 题目剖析: 关键点有几个:排序数组...(已排序),原地删除,不使用额外的数组空间。...我前期审题了的时候就忽略了“排序”这个词。因为排序好的数组,就意味着[0,1,0,2]这种情况的数组就不存在了。好了,回归正题。我们来分析一下答案为什么要这么写叭。...其次,当数组正常情况下(即数组是已经排序好了的。)。那么就需要处理多余的数组里的值。要想解这道题,最主要的是要理解数组对象的存储的数据都是对其他的数据的引用,他存储在各种常量池中。

    10.4K10
    领券