首页 > 其他分享 >参考案例之“对象调用方法时,如何在方法中使用对象,例如(root.display()的display方法中使用root)”

参考案例之“对象调用方法时,如何在方法中使用对象,例如(root.display()的display方法中使用root)”

时间:2023-01-12 10:46:59浏览次数:38  
标签:TreeNode val root results new 方法 display

一、对象调用方法时,如何在方法中使用对象,例如(root.display()的display方法中使用root)

1.测试方法

@Test
public void suanfa24()
{
    TreeNode root = new TreeNode(3, new TreeNode(9), new TreeNode(20, new TreeNode(15), new TreeNode(7)));

    System.out.println("root.display() = " + root.display());
}

 

2.树节点的被调用方法display()

package com.bessky.pss.wzw.SuanFa;

import java.util.ArrayList;
import java.util.List;

/**
 * 树节点类
 *
 * @author 王子威
 * @date 2022/7/27
 */
public class TreeNode
{
    int val;
    TreeNode left;
    TreeNode right;
    TreeNode() {}
    TreeNode(int val) {this.val = val;}
    TreeNode(int val, TreeNode left, TreeNode right){
        this.val = val;
        this.left = left;
        this.right = right;
    }

    /**
     * 遍历显示
     *
     * @return
     */
    public String display()
    {
        // 创建存储先序遍历后的结果
        List<Integer> results = new ArrayList<>();

        // 调用:递归方法
        this.inorder(this, results);

        return results.toString();
    }

    /**
     * 递归方法体
     *
     * @param root
     * @param results
     */
    public void inorder(TreeNode root, List<Integer> results)
    {
        if (root == null)
        {
            return ;
        }
        // 调用:当最左时就存储 || 或左没有时存储
        results.add(root.val);
        // 调用:递归方法(先把最左边的拿到)
        inorder(root.left, results);
        // 调用:递归方法(左没有时就递归右边)
        inorder(root.right, results);
    }
}

 

3.总结

  • 这里直接使用this 就是对象本身了,也就是root.display()的root了
  • 先序遍历 和 中序遍历 和 后序遍历 展示的结果是不一样的,大部分都是使用先序遍历来回显

标签:TreeNode,val,root,results,new,方法,display
From: https://www.cnblogs.com/saoge/p/17045763.html

相关文章