Java [Leetcode 94]Binary Tree Inorder Traversal

题目描述:

Given a binary tree, return the inorder traversal of its nodes' values.

For example:
Given binary tree {1,#,2,3},文章来源地址https://www.yii666.com/article/756109.html文章地址https://www.yii666.com/article/756109.html网址:yii666.com文章来源地址:https://www.yii666.com/article/756109.html

   1
\
2
/
3

return [1,3,2].网址:yii666.com<

解题思路:

使用栈。从根节点开始迭代循环访问,将节点入栈,并循环将左子树入栈。如果当前节点为空,则弹出栈顶节点,也就是当前节点的父节点,并将父节点的值加入到list中,然后选择右节点作为循环的节点,依次循环。

代码如下:

/**
* 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> inorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<Integer> ();
Stack<TreeNode> stack = new Stack<TreeNode> ();
TreeNode cur = root;
while(cur != null || !stack.empty()){
while(cur != null){
stack.push(cur);
cur = cur.left;
}
cur =stack.pop();
res.add(cur.val);
cur = cur.right;
}
return res;
}
}

  

版权声明:本文内容来源于网络,版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。文本页已经标记具体来源原文地址,请点击原文查看来源网址,站内文章以及资源内容站长不承诺其正确性,如侵犯了您的权益,请联系站长如有侵权请联系站长,将立刻删除

Java [Leetcode 94]Binary Tree Inorder Traversal-相关文章

  1. Java [Leetcode 94]Binary Tree Inorder Traversal

  2. Java [Leetcode 144]Binary Tree Preorder Traversal

  3. Java [Leetcode 257]Binary Tree Paths

  4. Java [Leetcode 102]Binary Tree Level Order Traversal

  5. Java [Leetcode 107]Binary Tree Level Order Traversal II

  6. LeetCode第[98]题(Java):Validate Binary Search Tree(验证二叉搜索树)

  7. A multi-faceted language for the Java platform

    最近在研究关于groovy 相关的技术 希望有研究交到研究这方面的朋友Groovy 最新的地址http://www.groovy-lang.org/

  8. java 集合 Se HashTreeSet

    Set接口 Set是Collection的子接口,与List相对 Set集合中的元素的特点是1,无序性 2,无下标3,无重复的元素 Set是个接口,所以无法直接创建对象,要依赖它的实现类来创建对象 Set的实现类有两个,一个是HashSet,另一个是TreeSet输出的结果是Set的成员方法基本上都是继承了collection方法 下

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信图片_20190322181744_03.jpg

微信扫一扫打赏

请作者喝杯咖啡吧~

支付宝扫一扫领取红包,优惠每天领

二维码1

zhifubaohongbao.png

二维码2

zhifubaohongbao2.png