【力扣】 二叉树转为链表 二叉树的下一个节点 二叉树中和为某值的路径 把二叉树打印成多行

这几天在力扣上刷

了些二叉树的题目,依靠基础 (前序遍历~中序遍历~ 后续遍历~层序遍历)解题,当然解题方法很多。  


【先将基础遍历介绍大家】

前序遍历 

第一步 建立循环 因为前序遍历 (跟 左 右)先将根节点放入list中 往左侧寻找 直到左侧最后一个节点 因此左侧一路所有节点全部放入list中。

第二步 此时栈顶元素为树左侧最后一个节点 进行右树的寻找。

class Solution {
     
    public List<Integer> preorderTraversal(TreeNode root) {
    List<Integer> mylist = new ArrayList<Integer>();
     Stack<TreeNode> stack = new Stack<>();
              TreeNode  cur = root;记录根节点
              while( cur != null || !stack.isEmpty()) {
                  while (cur != null) {
                      stack.push(cur);将根节点放入栈中
                  
                     mylist.add(cur.val);因为是先序(跟 左 右)将跟的值放入list中 
                      cur = cur.left;往左边走 直达左边没有元素 此时左侧已经到最后一个节点

                  }
                  TreeNode pre = stack.pop();将栈顶元素出栈 
                  cur = pre.right;往右边进行发展
}
                return mylist;最后返回list;
    }

中序遍历 

第一步 建立循环 因为中序遍历 ( 左 跟 右)先将根节点放入栈中 往左侧寻找   直到左侧最后

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值