package daily20210105;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
/**
* @author : zhaoliang
* @program :newCoder
* @description : 二叉树的中序遍历
* @create : 2021/01/05 20:12
*/
public class inorderTraversal {
//给定一个二叉树的根节点 root ,返回它的 中序 遍历。
class TreeNode{
int val;
TreeNode left;
TreeNode right;
TreeNode(int x, TreeNode left, TreeNode right){
this.val = x;
this.left = left;
this.right = right;
}
}
public List<Integer> inorderTraversal(TreeNode root){
List<Integer> res = new ArrayList<>();
if (root == null)return res;
Stack<TreeNode> stack = new Stack<>();
TreeNode cur = root;
while (!stack.isEmpty() || cur!=null){
while (cur!=null){
stack.push(cur);
cur = cur.left;
}
TreeNode node = stack.pop();
res.add(node.val);
cur = node.right;
}
return res;
}
}
二叉树的中序遍历
最新推荐文章于 2023-02-21 21:29:06 发布