所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。遍历方式分别为:先序遍历、中序遍历、后序遍历。二叉树前序遍历:根-> 左-> 右;二叉树中序遍历:左->... ...
分类:
其他好文 时间:
2021-02-02 10:39:44
阅读次数:
0
题意 给出N个结点的地址address、数据域data以及指针域next,然后给出链表的首地址,要求把在这个链表.上的结点按data值从小到大输出。 样例解释 按照输入,这条链表是这样的(结点格式为[address, data,next]): [00001, 0, 22222]→[22222, 10 ...
分类:
其他好文 时间:
2021-02-01 13:02:52
阅读次数:
0
题意 将一个二叉树转换为它的镜像树 思路 很容易想到镜像树是要交换左右孩子,而且是递归式的,也就是说还要对它的左孩子和右孩子这么做。 本质是对遍历算法的理解,显然这里是用后序遍历比较合理的,后序遍历是左右根的顺序,也就是遍历到当前根结点的时候左右子树都已经遍历过也处理好了(翻转为镜像) 代码 cla ...
分类:
其他好文 时间:
2021-01-29 12:07:31
阅读次数:
0
https://www.acwing.com/solution/content/3472/ 单链表 #include<iostream> using namespace std; const int N=1e6+10; // e[N]中存value,ne[N]存下一个结点的下标 int head,e ...
分类:
其他好文 时间:
2021-01-26 12:24:15
阅读次数:
0
/* 输入一个链表,输出该链表中倒数第k个结点。 输入 复制 1,{1,2,3,4,5} 返回值 复制 {5} */ public class Solution { public ListNode FindKthToTail(ListNode head,int k) { if(head==null) ...
分类:
编程语言 时间:
2021-01-20 11:48:14
阅读次数:
0
搞清楚AQS独占锁的实现原理之后,再看共享锁的实现原理就会轻松很多。两种锁模式之间很多通用的地方本文只会简单说明一下,就不在赘述了 一、执行过程概述 获取锁的过程: 当线程调用acquireShared()申请获取锁资源时,如果成功,则进入临界区。 当获取锁失败时,则创建一个共享类型的节点并进入一个 ...
分类:
其他好文 时间:
2021-01-15 11:59:19
阅读次数:
0
题目: 思路: 首先画个图出来,假设有两个指针指向头结点 p1与p2,那么当p1走一步,而p2走两步,如果存在圆,那么必然会出现,p1与p2同时落在C处(即重合点)。故此时链表有环。 其次,题目要求我们取出入口节点,由上可知, 假设 链表头到环入口AB长度为——a, 环入口到相遇点BC长度为——b, ...
分类:
其他好文 时间:
2021-01-14 11:16:29
阅读次数:
0
二叉搜索树中的众数 题目 leetcode原题:501. 二叉搜索树中的众数 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。 假定 BST 有如下定义: 结点左子树中所含结点的值小于等于当前结点的值 结点右子树中所含结点的值大于等于当前结点的值 左子树和右 ...
分类:
编程语言 时间:
2021-01-13 10:59:01
阅读次数:
0
1609. 链表的中间结点 中文English 给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 样例 样例 1: 输入:1->2->3->4->5->null 输出:3->4->5->null 样例 2: 输入:1->2->3->4->5 ...
分类:
其他好文 时间:
2021-01-13 10:37:47
阅读次数:
0
这几天面试老是遇到二叉树遍历问题,之前没怎么吃透,这次尝试好好啃一下,在这记录下这次学习的过程 二叉树的定义 首先我们先来看二叉树的口述定义 二叉树是树的叶子节点的数量不大于2的树 我们就随便再看看树的口述定义 ? 树是 N (N >= 0 )个结点的有限集合,N = 0 时,称为空树,这是一种特殊 ...
分类:
编程语言 时间:
2021-01-12 10:42:55
阅读次数:
0