IT入门 > 面试题 > python题库 >
  • 交叉链表求交点

    2019/07/27 点击:4482

    其实思想可以按照从尾开始比较两个链表,如果相交,则从尾开始必然一致,只要从尾开始比较,直至不一致的地方即为交叉点,如图所示 # 使用a,b两个list来模拟链表,可以看出交叉点

  • 二分查找

    2019/07/27 点击:7055

    #coding:utf-8def binary_search(list, item): low = 0 high = len(list) - 1 while low item: high = mid - 1 elif guess 参考: http://blog.csdn.net/u013205877/article/details/76411718

  • 快速排序

    2019/07/27 点击:1066

    #coding:utf-8def quicksort(list): if len(list) midpivot] finallylist = quicksort(lessbeforemidpivot)+[midpivot]+quicksort(biggerafterpivot) return finallylistprint quicksort([2,4,6,7,1,2,5]) 更多排序问题可见:[数据结构与算法

  • 找零问题

    2019/07/27 点击:3490

    #coding:utf-8#values是硬币的面值values = [ 25, 21, 10, 5, 1]#valuesCounts 钱币对应的种类数#money 找出来的总钱数#coinsUsed 对应于目前钱币总数i所使用的硬币数目def coinChange(values,valuesCounts,money,coin

  • 广度遍历和深度遍历二叉树

    2019/07/27 点击:6666

    给定一个数组,构建二叉树,并且按层次打印这个二叉树

  • 二叉树节点

    2019/07/27 点击:1918

    class Node(object): def __init__(self, data, left=None, right=None): self.data = data self.left = left self.right = righttree = Node(1, Node(3, Node(7, Node(0)), Node(6)), Node(2, Node(5), Node(4)))

  • 深度遍历

    2019/07/27 点击:2205

    def deep(root): if not root: return print root.data deep(root.left) deep(root.right)if __name__ == '__main__': lookup(tree) deep(tree)

  • 前中后序遍历

    2019/07/27 点击:4257

    深度遍历改变顺序就OK了 #coding:utf-8#二叉树的遍历#简单的二叉树节点类class Node(object): def __init__(self,value,left,right): self.value = value self.left = left self.right = right#中序遍历:遍历左子树,访问当

  • 求最大树深

    2019/07/27 点击:7041

    def maxDepth(root): if not root: return 0 return max(maxDepth(root.left), maxDepth(root.right)) + 1

  • 求两棵树是否相同

    2019/07/27 点击:1789

    def isSameTree(p, q): if p == None and q == None: return True elif p and q : return p.val == q.val and isSameTree(p.left,q.left) and isSameTree(p.right,q.right) else : return False