摘要:
字符串的排列 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。 思路: 对于一个长 阅读全文
摘要:
二叉搜索树与双向链表 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路: 二叉搜索树的中序遍历为 递增序列 。将 二叉搜索树 转换成一个 “排序的循环双向链表” ,其中包含三个要素: 排序链表: 节点应从小到大排序,因此应使用 阅读全文
摘要:
复杂链表的复制 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路:1)空间复杂度O(1),时间复杂度O(N) 阅读全文
摘要:
二叉树中和为某一值的路径 输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 解题思路: 递归回溯的解法 1.按照前序方式去遍历(根,左,右)2.递归处理: 忽略空节点 递归过程中去修改sum的 阅读全文
摘要:
二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 解题思路二叉搜索树:左子树的元素是都小于根元素,右子树都大于根元素后序遍历:首先遍历左子树,然后遍历右子树,最后访问根结点,所以数组最 阅读全文