3种常见的遍历方式如下: 中序遍历:左子节点->根节点->右子节点 先序遍历:根节点->左子节点->右子节点 后序遍历:左子节点->右子节点->根节点 为方便记忆,可以理解为根节点的相对位置 中序:根节点出现在左右子树中间 先序:根节点出现在子树之前 后序:根节点出现在子树之后 树节点的定义 /** ...
分类:
编程语言 时间:
2020-11-01 09:45:25
阅读次数:
19
给定一个二叉树,返回它的 前序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 递归: 思路: 1.先序遍历,采用的是先根,再左,再右的方式 2.而在访问左子树或者右子树的时候,我们按照同样的方式遍历, ...
分类:
其他好文 时间:
2020-10-31 01:34:45
阅读次数:
19
##前序遍历+判断 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x ...
分类:
其他好文 时间:
2020-10-30 11:39:04
阅读次数:
14
class Solution { public List<Integer> postorderTraversal(TreeNode root) { //一般解法,前序遍历后,翻转下结果集,注意下 与前序遍历的进栈顺序不一样 //(前序) 根左右 --> 变为 根右左 --> 翻转 左右根 (后续) ...
分类:
其他好文 时间:
2020-10-27 11:40:04
阅读次数:
20
1. 深度优先遍历 使用场景:常见于各种组合,树遍历,前序遍历、中序遍历、后续遍历 private void dfs(int[] arr, int target,int begin, Deque<Integer> path, Set<List<Integer>> res) { if ( path.s ...
分类:
编程语言 时间:
2020-10-26 10:56:27
阅读次数:
26
先序遍历 Stack<TreeNode> stk = new Stack<>(); stk.push(root); while (!stk.empty()) { TreeNode cur = stk.pop(); if (cur != null) { // visit cur stk.push(cu ...
分类:
其他好文 时间:
2020-10-19 22:18:07
阅读次数:
24
选择 冒泡排序过程,插入排序移动次数,快速排序二轮划分 chmod命令 死锁出现的情况 八进制乘法 设计模式判断 白盒测试用于(单元测试) SQL建立存储的过程 操作系统分区管理 LRU/OPT算法缺页次数 UDP/TCP TCP报文首部(看一条,哪部分是哪部分) 进程调度算法 前序+中序->后序 ...
分类:
其他好文 时间:
2020-10-14 19:59:50
阅读次数:
18
题目链接 530. 二叉搜索树的最小绝对差 题目描述 解题思路 1.利用中序遍历把树转为有序数组,然后在数组上求两个相邻数字的最小值。 2.同样采用中序遍历,可以直接在递归遍历的过程中记录相邻数字的最小值。 3.因为题目给的树是二叉排序树,所以中序遍历的结果一定是一个有序数组,所以两个数的差的最小值 ...
分类:
其他好文 时间:
2020-10-12 20:05:23
阅读次数:
15
二叉树 C++风格二叉树节点 struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; 二叉树的前序遍历 前序遍历(VLR), ...
分类:
其他好文 时间:
2020-09-18 00:55:38
阅读次数:
29