非递归遍历
-----------------前序遍历------------------------
class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> res = new ArrayList<>();if(root == null) return res;Stack<TreeNode> stack = new Stack<>();stack.push(root);while(!stack.isEmpty()){TreeNode node = stack.pop();res.add(node.val);if(node.right != null) stack.push(node.right);if(node.left != null) stack.push(node.left);}return res;}
}-----------后序遍历-----------------------------class Solution {public List<Integer> postorderTraversal(TreeNode root) {List<Integer> res = new ArrayList<>();if(root == null) return res;Deque<TreeNode> deque = new LinkedList<>();deque.push(root);while(!deque.isEmpty()){TreeNode node = deque.pop();res.add(node.val);if(node.left != null) deque.push(node.left);if(node.right != null) deque.push(node.right);}Collections.reverse(res);return res;}
}
class Solution {public List<Integer> postorderTraversal(TreeNode root) {List<Integer> res = new ArrayList<Integer>();if (root == null) {return res;}Deque<TreeNode> stack = new LinkedList<TreeNode>();TreeNode prev = null;while (root != null || !stack.isEmpty()) {while (root != null) {stack.push(root);root = root.left;}root = stack.pop();if (root.right == null || root.right == prev) {res.add(root.val);prev = root;root = null;} else {stack.push(root);root = root.right;}}return res;}
}
前序非递归:
public List<Integer> preTravel(TreeNode root){List<Integer> res = new ArrayList<>();if(root == null) return res;Stack<TreeNode> stack = new Stack<>();while(!stack.isEmpty() || root != null){while(root != null){res.add(root.val);stack.push(root);root = root.left;}if(!stack.isEmpty()){root = stack.pop();root = root.right;}}return res;}
中序非递归:
public List<Integer> midTravel(TreeNode root){List<Integer> res = new ArrayList<>();if(root == null) return res;Stack<TreeNode> stack = new Stack<>();while(!stack.isEmpty() || root != null){while(root != null){stack.push(root);root = root.left;}if(!stack.isEmpty()){root = stack.pop();res.add(root.val);root = root.right;}}return res;}
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态