leetcode 144. Binary Tree Preorder Traversal
来源:互联网 发布:php程序员需要什么软件 编辑:程序博客网 时间:2024/05/01 08:15
原文链接http://www.myexception.cn/program/1958647.html
题目
Given a binary tree, return the preorder traversal of its nodes’ values.
For example:
Given binary tree {1,#,2,3},
return [1,2,3].
解1(递归)
//前序遍历 递归 public static void preorderTraversal(TreeNode root){ if(root==null) return ; System.out.print(root.val+" "); inorderTraversal(root.left); inorderTraversal(root.right); }
解2(非递归方法)
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res=new ArrayList<Integer>(); Stack<TreeNode> nodeStack=new Stack<>(); while(true) { while(root!=null) { res.add(root.val); nodeStack.push(root); root=root.left; } if(nodeStack.isEmpty()) break; TreeNode tempNode=nodeStack.pop(); root=tempNode.right; } return res; }}
解3(非递归)
//前序遍历 非递归 public static List<TreeNode> preorderTraversal2(TreeNode root){ List<TreeNode> tList=new ArrayList<TreeNode>(); Stack<TreeNode> tStack=new Stack<TreeNode>(); tStack.push(root); while(!tStack.isEmpty()){ TreeNode p=tStack.pop(); tList.add(p); System.out.print(p.val+" "); if(p.right!=null) tStack.push(p.right); if(p.left!=null) tStack.push(p.left); } return tList; }
0 0
- [LeetCode]144.Binary Tree Preorder Traversal
- LeetCode 144. Binary Tree Preorder Traversal
- [leetcode] 144.Binary Tree Preorder Traversal
- 【LeetCode】144. Binary Tree Preorder Traversal
- 144. Binary Tree Preorder Traversal LeetCode
- LeetCode 144. Binary Tree Preorder Traversal
- [LeetCode]144. Binary Tree Preorder Traversal
- 【LeetCode】144. Binary Tree Preorder Traversal
- leetcode:144. Binary Tree Preorder Traversal
- leetcode 144. Binary Tree Preorder Traversal
- [LeetCode OJ]144.Binary Tree Preorder Traversal
- LeetCode *** 144. Binary Tree Preorder Traversal
- LeetCode 144. Binary Tree Preorder Traversal
- LeetCode-144.Binary Tree Preorder Traversal
- LeetCode 144. Binary Tree Preorder Traversal
- leetcode 144. Binary Tree Preorder Traversal
- leetcode 144. Binary Tree Preorder Traversal
- [leetcode] 144. Binary Tree Preorder Traversal
- AngularJs学习笔记(一)初认识AngularJs
- wiki百科翻译之Lean software development之Deliver as fast as possible
- Duplicate column name 'xxx'错误
- 项目常用第三方库收集
- android intent.setType("type");的含义
- leetcode 144. Binary Tree Preorder Traversal
- opencv:求一幅图片的LBP纹理图(c++版本)
- CAS(3)——Cas Server中各配置文件介绍
- 注册表
- activemq cluster masterslave 配置
- JavaScript高级程序设计(第3版)学习笔记——callee
- 进制之间的转换
- linux下的.so和.a文件
- [Java笔试面试知识点自整理系列]Java线程中run和start方法的区别