算法
柯南爱上指针
·
展开
-
万恶之源-链表反转
//链表反转 public ListNode reverseList(ListNode head){ ListNode pre = null; ListNode next = null; while (head != null) { next = head.next; head.next = pre; pre = head; head = next; ..原创 2020-06-27 15:58:25 · 173 阅读 · 0 评论 -
70. 爬楼梯
假设你正在爬楼梯。需要n阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定n是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1. 1 阶 + 1 阶 + 1 阶 2. ...原创 2020-04-26 23:21:40 · 163 阅读 · 0 评论 -
96. 不同的二叉搜索树
给定一个整数n,求以1 ...n为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 ...原创 2020-04-26 22:53:10 · 170 阅读 · 0 评论 -
先序序列和中序序列构造二叉树
1、题目描述:求先序序列(ABCDEFGHI)和中序序列(BCAEDGHFI)所确定的一个二叉树 解题思路: 首先,由先序序列可知A为二叉树的根节点。中序序列中A之前的BC为左子树的中序序列,EDGHFI为右子树的中序序列。然后由先序序列可知B是左子树的根节点,D是右子树的根节点。依次列退,就能将剩下的节点全部分解下去,最后得到二叉树如图(c) public class 由遍历序列构...原创 2020-04-19 16:27:07 · 2438 阅读 · 0 评论 -
剑指Offer之调整数组顺序使奇数位于偶数前面
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 解题思路: 第一种:首先,说一种时间复杂度为O(n),但是空间复杂度较高的。但是这种代码,肯定不会是面试官喜欢的。 我们申请另外两个数组,每次输入数据时,直接比对是奇数还是偶数,顺序存放在两个数组中,并...原创 2018-11-06 14:30:23 · 180 阅读 · 0 评论 -
剑指Offer之二叉树的镜像
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5 ...原创 2018-11-06 22:12:15 · 125 阅读 · 0 评论 -
剑指Offer之对称二叉树
题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。例如图4.3中,第一二棵树是对称的,第三棵不是对称的。 解题思路:1、可以构造出这个树的镜像,然后遍历这个树的镜像和这原来这颗树,如果是一样的话,说明是对称二叉树。 2、使用第二种方案:通过观察可知道,如果二叉树对称,则根左右遍历的结果和根右左遍历的结果是一样的,可以画...原创 2018-11-06 23:55:36 · 166 阅读 · 0 评论