欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

二叉树的中序遍历(94),

来源: javaer 分享于  点击 2746 次 点评:36

二叉树的中序遍历(94),


题目描述:给定一个二叉树,返回它的中序 遍历。
示例:
  输入: [1,null,2,3]
       1
        \
         2
        /
       3
输出: [1,3,2]

 

解法一:递归(较简单)    

/**  * Definition for a binary tree node.  * public class TreeNode {  *     int val;  *     TreeNode left;  *     TreeNode right;  *     TreeNode(int x) { val = x; }  * }  */ class Solution {     List<Integer> lis = new ArrayList<>();      public List<Integer> inorderTraversal(TreeNode root) {         if(root == null)    return lis;  //若节点为空,则返回当前结果数组         inorderTraversal(root.left);    //对左子树进行中序遍历         lis.add(root.val);                   inorderTraversal(root.right);   //对右子树进行中序遍历         return lis;     } }   解法二:(迭代)--基于栈的中序遍历 class Solution {         public List<Integer> inorderTraversal(TreeNode root) {             List<Integer> list = new ArrayList<>();             Stack<TreeNode> stack = new Stack<>();             TreeNode cur = root;             while (cur != null || !stack.isEmpty()) {                 if (cur != null) {                     stack.push(cur);//保留当前根节点信息                     cur = cur.left;                 } else {                     cur = stack.pop();                     list.add(cur.val);                     cur = cur.right;                 }             }             return list;         }     }

相关文章

    暂无相关文章
相关栏目:

用户点评