leetcode 144. Binary Tree Preorder Traversal

秒速五厘米 2021-12-13 19:49 783阅读 0赞

recursive version

  1. /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { List<Integer> ret = new ArrayList<>(); public List<Integer> preorderTraversal(TreeNode root) { dfs(root); return ret; } public void dfs(TreeNode node) { if (node == null) return; ret.add(node.val); dfs(node.left); dfs(node.right); } }

Non-recursive. It’s relatively simple. So no explaination.

  1. /** * 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> ret = new ArrayList<>(); if (root == null) return ret; Stack<TreeNode> s = new Stack<TreeNode>(); s.add(root); while (!s.isEmpty()) { TreeNode node = s.pop(); ret.add(node.val); if (node.right != null) s.add(node.right); if (node.left != null) s.add(node.left); } return ret; } }

转载于:https://www.cnblogs.com/exhausttolive/p/10682094.html

发表评论

表情:
评论列表 (有 0 条评论,783人围观)

还没有评论,来说两句吧...

相关阅读