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

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

(adsbygoogle = window.adsbygoogle || []).push({}); 题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印 思路:典型的队列使用 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); } } 拓展
剑指offer12:矩阵中的路径

剑指offer12:矩阵中的路径

(adsbygoogle = window.adsbygoogle || []).push({}); 题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在
剑指offer27:树的镜像

剑指offer27:树的镜像

(adsbygoogle = window.adsbygoogle || []).push({}); 题目:操作给定的二叉树,将其变换为源二叉树的镜像 如上图所示,树的镜像是将每个节点的左右子树交换,因此,对于每个节点只需要交换左右子
剑指offer26:树的子结构

剑指offer26:树的子结构

(adsbygoogle = window.adsbygoogle || []).push({}); 题目:输入两棵二叉树A,B,判断B是不是A的子结构. 如上图,其中B为A的子结构. 思路: 判断是否为子树,首先需要定位到子树的根节点,
剑指offer24:反转链表

剑指offer24:反转链表

(adsbygoogle = window.adsbygoogle || []).push({}); 题目:输入一个链表,反转链表后,输出新链表的表头. 思路一:链表反转,需将节点指向改变. 可以每次取下一个节点向之前的节点中插入,采用
剑指offer10:斐波那契数列

剑指offer10:斐波那契数列

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