2019年4月20日

树的同构

摘要: import java.util.*;class treenode{ public char val; int left; int right;}public class Main { public static int root = -1; //全局变量 public static treenod 阅读全文

posted @ 2019-04-20 15:53 q2013 阅读(80) 评论(0) 推荐(0) 编辑

2019年3月19日

按之字形顺序打印二叉树

摘要: 思路:两个栈s1和s2,遍历s1时按左到右顺序在s2存放子树根节点,遍历s2时按从右到左顺序在s1存放子树根节点 public class Solution { public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) { ArrayLi 阅读全文

posted @ 2019-03-19 17:22 q2013 阅读(75) 评论(0) 推荐(0) 编辑

2019年3月17日

二叉搜索树与双向链表

摘要: 将BST转成双向链表,相当于中序遍历 非递归法: public class Solution { public static TreeNode Convert(TreeNode pRootOfTree) { TreeNode p = pRootOfTree; TreeNode q = null; i 阅读全文

posted @ 2019-03-17 23:27 q2013 阅读(80) 评论(0) 推荐(0) 编辑

二叉搜索树的后序遍历序列

摘要: 二叉搜索树:右子树的所有结点大于根,左子树的所有结点小于根。 注意点:递归结束条件 public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if(sequence.length == 0) return 阅读全文

posted @ 2019-03-17 16:32 q2013 阅读(109) 评论(0) 推荐(0) 编辑

2019年3月15日

从上往下打印二叉树

摘要: 利用arraylist构造treenode的队列,将每个结点的值输出并将每个结点的左右子树依次入队。 import java.util.ArrayList; public class Solution { public ArrayList<Integer> PrintFromTopToBottom( 阅读全文

posted @ 2019-03-15 19:44 q2013 阅读(93) 评论(0) 推荐(0) 编辑

2019年3月14日

用两个栈实现队列

摘要: 思路1:入队时,如果栈2不空,把栈2元素出到栈1中再入栈;出队时,如果栈1不空,把栈1出到栈2;(略为繁琐) 思路2:入队时,直接入;出队时,如果栈2不空,直接出,如果空,把栈1元素出到栈2. public void push(int node) { while(!stack2.isEmpty()) 阅读全文

posted @ 2019-03-14 17:13 q2013 阅读(103) 评论(0) 推荐(0) 编辑

2019年3月11日

*重建二叉树

摘要: 二叉树掌握的并不好 转方法: public class Solution { public TreeNode reConstructBinaryTree(int [] pre,int [] in) { TreeNode root = reConstructBinaryTree(pre, 0, pre 阅读全文

posted @ 2019-03-11 15:23 q2013 阅读(118) 评论(0) 推荐(0) 编辑

*链表中环的入口结点

摘要: 弄懂了思路: 首先判断是否为环:快慢指针,快是慢的两倍,如果相遇则有环;此时两个指针走的路程差就是环的长度或长度的n倍; 头到入口:a;环长度:b;相遇点到入口:c; 则 2*(a+b-c) = a+b+b-c; 得a=c; 即头到入口=相遇点到入口。 将快指针指向头,相同速度移动,遇到即为入口结点 阅读全文

posted @ 2019-03-11 12:37 q2013 阅读(86) 评论(0) 推荐(0) 编辑

2019年3月6日

*复杂链表的复制

摘要: 转大神解法: 解题思路: 1、遍历链表,复制每个结点,如复制结点A得到A1,将结点A1插到结点A后面; 2、重新遍历链表,复制老结点的随机指针给新结点,如A1.random = A.random.next; 3、拆分链表,将链表拆分为原链表和复制后的链表 public class Solution 阅读全文

posted @ 2019-03-06 17:12 q2013 阅读(118) 评论(0) 推荐(0) 编辑

替换空格

摘要: 1.StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。 StringBuilder 的方法不是线程安全的(不能同步访问)。 但 StringBuilder 有速度优势,所以多数情况下建议使用 StringBuilder 类。 2.Strin 阅读全文

posted @ 2019-03-06 16:14 q2013 阅读(115) 评论(0) 推荐(0) 编辑

导航