zoukankan      html  css  js  c++  java
  • 94. 二叉树的中序遍历

    递归

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
       public List<Integer> inorderTraversal(TreeNode root) {
            List<Integer> ls = new LinkedList<Integer>();
             mid(root,ls);
            return ls;
        }
        public static void mid(TreeNode T,List<Integer> ls){
            if(T!=null){
                mid(T.left,ls);
                ls.add(T.val);
                mid(T.right,ls);
            }
        }
    }
    
    

    递推

    	public List<Integer> inorderTraversal(TreeNode root) {
    		List<Integer> ls = new LinkedList<Integer>();
    		Stack<TreeNode> s = new Stack<TreeNode>();
    		TreeNode temp = root;
    		while(temp!=null||!s.isEmpty()) {
    			while(temp!=null) {
    				s.push(temp);
    				temp = temp.left;
    			}
    			temp = s.pop();                                                      //感觉这个是左节点 其实相对的话是中   容易产生错觉
    			ls.add(temp.val);
    			temp = temp.right;
    		}
    		return ls;
    	}
    }
    

  • 相关阅读:
    C#之设计模式
    C#之索引器
    C#基础强化-继承与多态
    C#基础强化-进程操作
    WKWebView与JavaScript交互基础
    HTML之JS学习
    HTML之CSS学习
    HTML学习
    玩诈欺的小杉
    最大异或和
  • 原文地址:https://www.cnblogs.com/cznczai/p/11179729.html
Copyright © 2011-2022 走看看