【LeetCode】Binary Tree Inorder Traversal
来源:互联网 发布:mysql连接期限 编辑:程序博客网 时间:2024/06/14 20:12
题目
Given a binary tree, return the inorder traversal of its nodes' values.
For example:
Given binary tree {1,#,2,3}
,
1 \ 2 / 3
return [1,3,2]
.
中序遍历二叉树。
递归法,利用全局的List存储遍历好的节点;迭代法,用栈先将根节点的所有左孩子都添加到栈内,然后再输出栈顶元素,再处理栈顶元素的右节点。代码如下:
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public List<Integer> inorderTraversal(TreeNode root) { List<Integer> list=new ArrayList<Integer>(); inorderRec(root,list); return list; } private void inorderRec(TreeNode root,List<Integer> list){ //注意此处运用全局的List if(root==null){ return; } inorderRec(root.left,list); list.add(root.val); inorderRec(root.right,list); }}//迭代法public List<Integer> inorderTraversal(TreeNode root) { List<Integer> list=new ArrayList<Integer>(); if(root==null){ return list; } Stack<TreeNode> stack=new Stack<TreeNode>(); TreeNode cur=root; while(true){ while(cur!=null){ stack.push(cur); cur=cur.left; } if(stack.isEmpty()){ break; } //此时已经没有左孩子了,在栈中弹出栈顶元素,并将该节点add进List cur=stack.pop(); list.add(cur.val); cur=cur.right; //遍历右节点 } return list;}
---EOF---
0 0
- LeetCode: Binary Tree Inorder Traversal
- [LeetCode]Binary Tree Inorder Traversal
- LeetCode Binary Tree Inorder Traversal
- [Leetcode] Binary Tree Inorder Traversal
- Leetcode: Binary Tree Inorder Traversal
- LeetCode Binary Tree Inorder Traversal
- LeetCode : Binary Tree Inorder Traversal
- [Leetcode] Binary Tree Inorder Traversal
- 【leetcode】Binary Tree Inorder Traversal
- [LeetCode]Binary Tree Inorder Traversal
- Leetcode: Binary Tree Inorder Traversal
- [leetcode]Binary Tree Inorder Traversal
- LeetCode-Binary Tree Inorder Traversal
- Leetcode Binary Tree Inorder Traversal
- [leetcode] Binary Tree Inorder Traversal
- LeetCode - Binary Tree Inorder Traversal
- [LeetCode] Binary Tree Inorder Traversal
- LeetCode | Binary Tree Inorder Traversal
- URL重写实现session跟踪
- php数据的存储和检索
- 免费无限制的公有云服务Bmob之二 创建表添加行
- 网关,路由,局域网内的通信及不同的网络间通信实现的原理剖析
- poj解题报告——3126
- 【LeetCode】Binary Tree Inorder Traversal
- VMware Network Adapter VMnet1和VMnet8 未识别的网络 的解决方法
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- 常用 DOS 命令
- ANT初学入门之一:基本概念、安装与配置
- java中数据类型与包装类
- 项目经理必知必会的那些事儿
- 工厂模式
- 嵌入式系统之Y-Chart