代码改变世界

基本数据结构与算法问题

2016-09-19 17:00  shuaihanhungry  阅读(218)  评论(0编辑  收藏  举报

链表

  • 输入一个链表的头结点,从尾到头反过来打印出每个结点的值。
  • 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)的时间删除该结点。
  • 输入一个链表,输出该链表中倒数第k个节点。
  • 求链表的中间结点。
  • 给出两个单向链表的头指针pHead1和pHead2,判断这两个链表是否相交。假设两个链表均不带环。
  • 给出一个单向链表的头指针pHead,判断链表中是否有环。
  • 给出两个单向链表的头指针pHead1和pHead2,判断这两个链表是否相交,若相交返回第一个相交的节点。假设两个链表均不带环。
  • 给出一个单向链表的头指针pHead,判断链表中是否有环,若存在,则求出进入环中的第一个节点。
  • 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的节点。
  • 输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。
  • [0,n - 1]这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。
  • 实现一个函数复制复杂链表,复杂链表中,每个节点除了有一个m_pNext指针指向下一个节点,还有一个m_pSibling指针指向链表中的任意节点或者NULL。

  • 输入一棵二叉树的根节点,求该树的深度。
  • 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。
  • 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。
  • 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。

参考:《剑指Offer》、经典面试题:链表的相交与环问题