94. Binary Tree Inorder Traversal
发布时间:2020-12-14 03:45:44 所属栏目:大数据 来源:网络整理
导读:1 // Recursive 2 class Solution { 3 ListInteger res = new ArrayList (); 4 public ListInteger inorderTraversal(TreeNode root) { 5 if (root != null ) { 6 inorderTraversal(root.left); 7 res.add(root.val); 8 inorderTraversal(root.right); 9 } 1
1 //Recursive 2 class Solution { 3 List<Integer> res = new ArrayList<>(); 4 public List<Integer> inorderTraversal(TreeNode root) { 5 if (root != null) { 6 inorderTraversal(root.left); 7 res.add(root.val); 8 inorderTraversal(root.right); 9 } 10 return res; 11 12 13 } 14 } 15 16 //Iterate 17 class Solution { 18 List<Integer> res = new ArrayList<>(); 19 public List<Integer> inorderTraversal(TreeNode root) { 20 if(root == null) return res; 21 Stack<TreeNode> stack = new Stack<>(); 22 stack.push(root); 23 Set<TreeNode> visited = new HashSet<>(); 24 while(!stack.empty()) { 25 TreeNode node = stack.pop(); 26 while(node.left != null && !visited.contains(node)) { 27 visited.add(node); 28 stack.push(node); 29 node = node.left; 30 } 31 res.add(node.val); 32 if(node.right != null) { 33 stack.push(node.right); 34 } 35 36 } 37 return res; 38 } 39 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |