区块链技术博客
www.b2bchain.cn

二叉树前中后序总结遍历

这篇文章主要介绍了二叉树前中后序总结遍历,通过具体代码讲解8106并且分析了二叉树前中后序总结遍历的详细步骤与相关技巧,需要的朋友可以参考下

本文实例讲述了二叉树前中后序总结遍历。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/8106.html。具体如下:

 https://www.b2bchain.cn/3761.html

原文地址 https://www.b2bchain.cn/3761.html

144.前序

 /**  * 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> preorderTraversal(TreeNode root) {         List<Integer> ans=new ArrayList<>();                   helper(root,ans); ​          return ans;                   }     private void  helper(TreeNode root,List ans){         if(root==null) return ;                  ans.add(root.val);              helper(root.left,ans);              helper(root.right,ans);             } }
 /**  * 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> preorderTraversal(TreeNode root) {         List<Integer> ans=new ArrayList<>();         if(root==null) return ans;         Deque<TreeNode> stack=new ArrayDeque<>();         stack.push(root);         while(!stack.isEmpty()){             TreeNode cur=stack.pop();             ans.add(cur.val);             if(cur.right!=null){                 stack.push(cur.right);             }             if(cur.left!=null){                 stack.push(cur.left);             }         }         return ans;     } }

中序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> ans=new ArrayList<>();       if(root==null) return ans;       Deque<TreeNode> stack=new ArrayDeque<>();       while(!stack.isEmpty()||root!=null){           //入栈一直到最左           while(root!=null){               stack.push(root);               root=root.left; ​           }           root=stack.pop();           ans.add(root.val); ​           root=root.right;       }       return ans;     } }

后序145

 /**  * 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> postorderTraversal(TreeNode root) {         //linkedList 涉及到结果的反转        LinkedList<Integer> ans=new LinkedList<>();        if(root==null) return ans;        Deque<TreeNode> stack=new ArrayDeque<>();        stack.push(root);        while(!stack.isEmpty()){            TreeNode cur=stack.pop();            //加到首            ans.addFirst(cur.val);             //使用if            if(cur.left!=null){                  stack.push(cur.left);            }            if(cur.right!=null){                 stack.push(cur.right);            }        }        return ans;     } }

本文地址https://www.b2bchain.cn/8106.html

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 二叉树前中后序总结遍历
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们