剑指offer32:从上到下打印二叉树

题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印 思路:典型的队列使用 void PrintFromTopToBottom(TreeNode* root) { if(root==nullptr) return ; queue<TreeNode*> q; q.push(root); while(!q.empty()){ TreeNode* node = q.front(); q.pop(); cout<<node->val<<" "; if(node->left!=nullptr) q.push(node->left); if(node->right!=nullptr) q.push(node->right); } } 拓展1: 分层从

剑指offer27:树的镜像

题目:操作给定的二叉树,将其变换为源二叉树的镜像 如上图所示,树的镜像是将每个节点的左右子树交换,因此,对于每个节点只需要交换左右子树的指针,

剑指offer24:反转链表

题目:输入一个链表,反转链表后,输出新链表的表头. 思路一:链表反转,需将节点指向改变. 可以每次取下一个节点向之前的节点中插入,采用头插法实现

剑指offer10:斐波那契数列

题目一: 求斐波那契数列的第n项. 斐波那契数列公式: $$f(0)=0$$ $$f(1)=1$$ $$f(n)=f(n-1) + f(n-2),n>1$$ 对于斐波那契数列,学过程序语言的应该都知道. 教学时基本都是使用它来说明递归,导致