题目:给定一个二叉树的根节点
root
,返回它的中序遍历。
题解:使用迭代思想(维护一个栈)
概念:中序遍历:访问按照 左子树——根节点——右子树 的顺序遍历树
方法:建立一个链表保存结果;
建立一个栈来保存根节点:从而使得可以先遍历左子树,当左子树为空时,即可弹出栈中的根节点将其存入链表中,只后遍历此节点的右子树。
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
Stack<TreeNode> stack=new Stack<>();
List<Integer> list=new ArrayList<>();
TreeNode cur=root;
while (cur!=null || !stack.isEmpty()){
while(cur!=null){
stack.pu