剑指28:对称的二叉树 传送门nowcoder leetcode 题目描述请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 C++ 代码 - nowcoder123456789101112131415161718/* 递归实现*/class Solution {public: bool isSymmetrical(TreeNode* pR 2021-01-30 #剑指
剑指27:二叉树的镜像 传送门nowcoderleetcode 题目描述操作给定的二叉树,将其变换为原二叉树的镜像。 C++ 代码 - nowcoder1234567891011121314151617181920212223242526272829303132333435363738394041424344/* 递归实现*/class Solution {public: TreeNode* Mir 2021-01-30 #剑指
剑指26:树的子结构 传送门nowcoderleetcode 题目描述输入两棵二叉树A,B,判断 B 是不是 A 的子结构。(ps:我们约定空树不是任意一个树的子结构) C++ 代码 - nowcoder1234567891011121314151617181920212223242526272829/* 1.先序遍历树 A 中的每个节点 node_A 实现函数 HasSubtree(A, B) 2 2021-01-30 #剑指
剑指25:合并两个排序的链表 传送门nowcoderleetcode 题目描述输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。数据范围:0 <= n <= 1000,-1000 <= 节点数 <= 1000要求:空间复杂度O(1),时间复杂度O(n) C++ 代码 - nowcoder1234567891011121314 2021-01-30 #剑指
剑指24:反转链表 传送门nowcoderleetcode 题目描述输入一个链表,反转链表后,输出新链表的表头。 C++ 代码 - nowcoder1234567891011121314151617181920212223242526272829303132333435363738/* 头插法,新建一个虚拟头节点*/class Solution {public: ListNode* Revers 2021-01-30 #剑指
剑指23:链表中环的入口节点 传送门nowcoderleetcode 题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出 null。 C++ 代码 - nowcoder1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950/* 哈希表*/class Solution 2021-01-30 #剑指
剑指22:链表中倒数第k个节点 传送门nowcoderleetcode 题目描述输入一个链表,输出该链表中倒数第k个结点。 C++ 代码 - nowcoder12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364/* 第一次遍历:求出链表的长 2021-01-30 #剑指
剑指21:调整数组顺序奇数位于偶数前面 传送门nowcoderleetcode 题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 C++ 代码 - nowcoder12345678910111213141516171819202122232425262728293031323334353637383940414 2021-01-30 #剑指
剑指20:表示数值的字符串 传送门nowcoderleetcode 题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如:字符串 “+100”, “5e2”, “-123”, “3.1416” 和 “-1E-16” 都表示数值。但是 “12e”, “1a3.14”, “1.2.3”, “+-5” 和 “12e+4.3” 都不是。 C++ 代码 - nowcoder123456789101112131415 2021-01-30 #剑指
剑指19:正则表达式匹配 传送门nowcoderleetcode 题目描述请实现一个函数用来匹配包括 '.' 和 '*' 的正则表达式。模式中的字符 '.' 表示任意一个字符,而 '*' 表示它前面的字符可以出现任意次(包含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如:字符串 “aaa” 与模式 “a.a” 和 “abaca” 匹配,但是与 “ 2021-01-30 #剑指