前言
之前几篇文章都是按照一个同学给的Word敲的,顺序也是链表开始,我敲的都是简单题。今天发现了一个博主,打算按照他的顺序来,再加上他有相应的解释。所以今天更一下学到的二叉树模板和学的第一个数组代码。
问题
二叉树的前序、中序、后序遍历。
思路分析
LeetCode上说递归比较简单(虽然我还没有敲过递归的答案),就先学习了迭代的模板。说解释,我看了视频解释也不是很懂,但是记住了关键的几行代码。
代码如下:
//前序遍历---根左右
class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
LinkedList<Integer> list = new LinkedList<Integer>();//通用的放值列表
Stack<TreeNode> stack = new Stack<TreeNode>();//栈
while(root != null || !stack.isEmpty()){
//这两个while我也不是很理解,我记的时候就是“root”和stack只要有一个不为空,就要“战斗”下去