首页 > TAG信息列表 > nodeStack

letcode-K个一组翻转链表(栈思想 + 递归)

题目:输入一个有序链表,每K个一组进行反转。 输入:1, 2, 3, 4, 5, 5, 6, 8, 10 K = 3 输出:3, 2, 1, 5, 5, 4, 10, 8, 6 题解 反转,那么最先想到的应该是栈;但是,java.util包里的栈是不可能用的,反正只是简单的记录,那么我们建立一个 长度为:K 的数组就可以了。 每次递归,根据传入的

13 二叉树的前序遍历(Binary Tree Preorder Traversal)

目录1 题目2 描述3 解决方案3.1 递归算法3.1.1 遍历法(Traverse)思路源码3.1.2 分治法(Devide And Conquer)思路源码3.2 非递归算法3.2.1 二叉树遍历的非递归通用解法思路源码图解3.2.2 前序遍历的非递归解法二思路源码3.2.3 前序遍历的非递归解法三思路源码3.3 时间复杂度3.4 空间复

《大话数据结构》之栈

栈 下面会出现一些我在《大话数据结构》之线性表中定义的数据种类,在全部完成之后,我会整理好发到我的github上去。 这个就是在一端进,同一端出的那种。 顺序存储实现栈 栈可以用线性表来存储。比如顺序存储来实现栈: 这里有一个存储头部元素的数组下标在哪里的值:top。 数据结构

【数据结构-二叉树】二叉树3种遍历的2种实现

这篇文章介绍了二叉树的3种遍历:前序遍历、中序遍历和后序遍历,以及这3种遍历的2种实现:递归实现和迭代实现。代码使用c++编写。 3种遍历 前序遍历、中序遍历以及后序遍历这3种遍历的区别在于访问节点的顺序不同。具体为: 前序遍历:根节点->左子节点->右子节点; 中序遍历:左子节点->根节

从零写一个编译器(九):语义分析之构造抽象语法树(AST)

项目的完整代码在 C2j-Compiler 前言 在上一篇完成了符号表的构建,下一步就是输出抽象语法树(Abstract Syntax Tree,AST) 抽象语法树(abstract syntax tree 或者缩写为 AST),是源代码的抽象语法结构的树状表现形式,这里特指编程语言的源代码。树上的每个节点都表示源代码中的一种结构

c#——树的深度,广度优先遍历与迭代器(IEnumerable<T>)的结合使用

树是开发工作中比较常见的一种数据结构,园子里有很多文章介绍了对它的遍历,此处我们结合c#的迭代器机制,创建两种树的遍历方法。   static IEnumerable<T> DepthFirstTravel<T>(T root,Func<T,IEnumerable<T>> getChildren) { if (getChildren == null)

Binary Tree Preorder Traversal

Given a binary tree, return the preorder traversal of its nodes' values. For example: Given binary tree {1,#,2,3}, 1 \ 2 / 3 return [1,2,3]. /** * Definition for binary tree * public class TreeNode { * int val; *