04月 01 数据结构 二叉树前序遍历 发表于 2018-04-01 • 字数统计: 二叉树前序遍历二叉树前序遍历:首先访问根节点,然后遍历左子树,最后遍历右子树 递归实现前序遍历(Java)12345678910111213141516171819202122232425/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> result = new ArrayList<Integer>(); pre(root,result); return result; } public void pre(TreeNode root, List<Integer> result){ if(root == null){ return; } result.add(root.val); pre(root.left,result); pre(root.right,result); }} 堆栈迭代实现前序遍历(Java)123456789101112131415161718192021222324252627282930/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> result = new ArrayList<Integer>(); if(root == null){ return result; } Stack<TreeNode> stack = new Stack<TreeNode>(); stack.push(root); while(!stack.isEmpty()){ TreeNode treeNode = stack.pop(); result.add(treeNode.val); if(treeNode.right != null){ stack.push(treeNode.right); } if(treeNode.left != null){ stack.push(treeNode.left); } } return result; }} 分享到: 赞赏 微信扫一扫,向我赞赏 支付宝扫一扫,向我赞赏