摘要: 有了上一个之字形打印二叉树,这个题就比较简单了。 首先分析这道题的结构,一行一行的输出。 1.如果第一行顺序存储,也就是先存左边在存右边。那么输出的时候也要同样的先左边后右边的顺序。这就是先进先出,所以用队列。 2.如果不顺序存,使用栈来存。第二行就先右边在左边,必须这样第一行输出的时候才可以先左后 阅读全文
posted @ 2019-07-27 11:35 妮妮熊 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 做这个题,选对数据结构很重要。 之字形打印,说明单双数行的输出顺序不一致,因此需要用两个栈。一行的数据放在其中一个栈中,如果栈空了说明此行全部输出,因此换下一个栈。 1 class Solution { 2 public: 3 vector<vector<int> > Print(TreeNode* 阅读全文
posted @ 2019-07-27 10:43 妮妮熊 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 这个题的主要思路是: 用二叉树的左子树的右子树和右子树的左子树比较,再用左子树的左子树和右子树的右子树比较。(好像有点绕,但其实就是对称的思想) 剑指offer的说法是用树的前序遍历的两个方法,前序遍历应该是:根-》左-》右。但是我们用另一种前序遍历:根-》右-》左。如果这两个序列一样就判断它是对称 阅读全文
posted @ 2019-07-27 08:41 妮妮熊 阅读(108) 评论(0) 推荐(0) 编辑