摘要:题目描述 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 递归思想 # -*- coding:utf-8 -*- # class TreeNod
阅读全文
摘要:题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到
阅读全文
摘要:题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) # -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None
阅读全文
摘要:题目描述 输入一个链表,反转链表后,输出新链表的表头。 这个题目有两种写法,非递归和递归的写法,我们先说非递归的写法,,设计三个指针,pre,cur还有post,代码里面用a、b、c分别来表示,依次迭代反转。 # -*- coding:utf-8 -*- # class ListNode: # de
阅读全文
摘要:给定两个整数数组,对第一个数组进行排序,整数顺序由其在第二个数组中的位置决定。对于没有出现在第二个整数数组中的整数,应排在末尾,其之间的顺序无限制。这里整数的取值范围是[0, 2 ^ 32 - 1]例: 第一个整数数组为 5 1 6 2 1 2 3, 第二个整数数组为2 1 3, 则排序结果为2 2
阅读全文
摘要:用左上和右下两个坐标点表示矩形(不考虑旋转的情况),给定两个矩形的坐标表示,(rectangle1_left_x,rectangle1_left_y,rectangle1_right_x,rectangle1_right_y)和,(rectangle2_left_x,rectangle2_left_
阅读全文
摘要:题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 # -*- coding:utf-8 -*- # c
阅读全文
摘要:题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 # -*- coding:utf-8 -*- class Solution: # array 二
阅读全文
摘要:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 利用递归的思想方便理解
阅读全文
摘要:二叉树的先序遍历(非递归)特别简单 直接上代码,根节点先入栈,然后循环栈不为空,pop出来后让右节点和左节点分别入栈
阅读全文
摘要:中序遍历是先遍历左子树,在自身,再遍历右子树, 非递归实现的方法,一直遍历左节点,然后出栈,在遍历右节点
阅读全文
摘要:二叉树的后序遍历的话,利用stack进行非递归遍历,要先访问每个节点的左子树,在访问右子树,然后访问自身, stack 一直循环,当栈顶节点(cur)的左右子树都是None的时候, 或者当pre节点不是None的时候,同时pre和cur节点的左右子节点中的一个相等的时候 可以出栈并访问
阅读全文