S型打印二叉树
//按照S型打印二叉树,分成奇偶行,奇数从左到右;偶数从右到左 //奇数层保存下一层的节点先保存左子节点,再保存右子节点;偶数层保存下一层节点相反。使用两个栈 #include <iostream> #include"../common/Construct
//按照S型打印二叉树,分成奇偶行,奇数从左到右;偶数从右到左 //奇数层保存下一层的节点先保存左子节点,再保存右子节点;偶数层保存下一层节点相反。使用两个栈 #include <iostream> #include"../common/Construct
//按行打印二叉树 //一个变量表示当前层还没有打印的节点数,另一个变量表示下一层节点的数目 #include <iostream> #include<queue> #include<stdio.h> #include "../co
//判断一棵二叉树是不是对称的 //充要条件:如果二叉树是对称的,那么它的前序遍历序列和这颗二叉树的对称二叉树的前序遍历序列是一样的。 #include <iostream> #include<stdio.h> using namespace std;
//找出二叉树中序遍历的下一个节点 #include <iostream> #include<stdio.h> using namespace std; struct BinaryTreeNode { int
//删除排序链表中重复的节点 //注意如果头结点是重复的,那么删除节点之后防止链表散掉 #include <iostream> #include<stdio.h> #include<stdlib.h> using
//找到链表中环的入口节点 //如果环有n个节点,那么指针p1先向前走n步,然后p1,p2一起往前走,直到相遇,相遇的节点就是入口节点//接下来求环的节点个数:用快慢指针,如果相遇,必存在环,然后记下这个位置,再向前一边移动一边计数,当再次回到这个节点,就求出这个huan的个数
//找到字符流中第一个只出现一次的字符//构建哈希表,用字符的ASCII码做下标,数值就是该字符在字符流中的位置,如果出现多次,那么这个数值就改成一个负值-2 #include <iostream> #include<limits> using name
//判斷字符串與模式是否匹配 //.表示匹配任意字符; *表示它前面的字符出現的次數(包含0次) #include <iostream> using namespace std; bool matchCore(char* str,char* pattern);
/找到數組中任意一個重複的數字,或者所有重複元素 那如果是所有重複的呢?動態數組 數組長度n,數組中的元素在0~n-1之間 / #include <iostream> #include<vector> #include<iterator> #
/*在二叉樹中找到給定兩個節點的最低公共祖先 lowest common ancestor LCA我們做一個規定:如果a是b的祖先,那麼他倆的LCA是a */ #include <iostream> #include<list> #include<