表示数值的字符串
题目描述
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。 但是”12e”,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是。
字符流中第一个不重复的字符
题目描述
请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字符“google”时,第一个只出现一次的字符是”l”。
输出描述:
如果当前字符流没有存在出现一次的字符,返回#字符。
1 | public class Solution { |
链表中环的入口节点
题目描述
一个链表中包含环,请找出该链表的环的入口结点。
1 | /* |
删除链表中重复的结点
题目描述
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
1 | /* |
注意事项
利用哨兵(result)保存链表开始节点,方便最后输出结果,因为pHead可能被删除,最后无法使用。
使用cur遍历,使用last_cur辅助,方便删除节点操作。
使用cur_num和cur_val来记录出现次数和待比较的值,以判断是否需要删除节点操作。
二叉树的下一个结点
题目描述
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
1 | /* |
对称的二叉树
题目描述
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
1 | /* |
注意事项
遍历顺序分别为根左右和根右左
按之字形顺序打印二叉树
题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推
1 | import java.util.ArrayList; |
注意事项
注意判断temp是否为空,不然内部循环不执行的时候也会在结果加入空集合。
把二叉树打印成多行
题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
1 | import java.util.ArrayList; |
注意事项
和上一题代码基本一致,使用LinkedList,实现先进先出。
二叉搜索树的第k个结点
题目描述
给定一颗二叉搜索树,请找出其中从小到大的第k个的结点。
1 | /* |
注意事项
数据流中的中位数
题目描述
如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。
1 | import java.util.ArrayList; |
注意事项
增加一个排序好的序列nums